字符流FileReader
字符流FileReader主要用來讀取字符的IO流,使用字符流讀取文本文件可以解決亂碼問題。
package com.sutaoyu.IO; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class IO_test_8 { public static void main(String[] args){ FileReader fr = null; try { fr = new FileReader("word.txt"); int temp; while((temp = fr.read()) != -1) { System.out.println((char)temp); } }catch(FileNotFoundException e) { e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); } } }
使用緩沖流BufferedReader可以一次讀取一行的文字:
package com.monkey1024.chario; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class FileReaderTest02 { public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader("word.txt"));) { String s; //一次讀取一行 while ((s = br.readLine()) != null) { System.out.print(s); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
字符流FileWriter
使用FileWriter可以解決寫出文本文件中文亂碼的問題
package com.sutaoyu.IO; import java.io.FileWriter; import java.io.IOException; public class IO_test_10 { public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("netword.txt"); fw.write("我洗喜歡學習java"); fw.write(97); }catch(IOException e){ e.printStackTrace(); } } }
使用BufferedWriter緩沖流寫出文字
package com.sutaoyu.IO; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class IO_test_11 { public static void main(String[] args) { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("netword.txt")); bw.write("我喜歡打籃球"); bw.newLine();//換行 bw.write("我喜歡踢足球"); bw.flush(); }catch(IOException e){ e.printStackTrace(); } } }
使用字符流拷貝文件
使用字符流拷貝文本文件可以避免文件中的內容亂碼,需要注意的是字符流不能拷貝非文本文件,比如照片。
package com.sutaoyu.IO; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class IO_test_12 { public static void main(String[] args) { BufferedReader br = null; BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("copyword.txt")); br = new BufferedReader(new FileReader("word.txt")); String s; while((s= br.readLine()) != null) { bw.write(s); bw.newLine(); } bw.flush(); }catch(IOException e) { e.printStackTrace(); } } }