字符流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(); } } }