Java IO(十七)FIleReader 和 FileWriter
Java IO(十七)FIleReader 和 FileWriter
一、介绍
FIleReader 和 FileWriter 是读写字符文件的便利类,分别继承于 InputStreamReader 和 OutputStreamWriter,同 FileInputStream 和 FileOutputStream 类似。
- FIleReader:读取字符文件的便利类,继承于InputStreamReader,是用于读取字符流的类。
- FileWriter:写入字符文件的便利类,继承于OutputStreamReader,是用于写入字符流的类。
注意:
- FIleReader 和 FileWriter 是读写字符流的类,如果读取字节流,考虑使用 FileInputStream 和 FileOutputStream。
- FIleReader 和 FileWriter 不能指定编码集(格式),如果需要指定编码集(格式),考虑使用它们的父类 InputStreamReader 和 OutputStreamWriter。
二、构造方法
(一)、FIleReader
(二)、FileWriter
三、常用API
FileReader 和 FileWriter 直接基于 InputStreamReader 和 OutputStreamWriter 实现的,具体 API 可以参考 Java IO(十六)InputStreamReader 和 InputStreamWriter 。
四、实例
public class FileDemo { private static char[] chs = new char[] {'a','b','c','d','e','f','g','h','i','j','k','l','m', 'n','o','p','q','r','s','t','u','v','w','x','y','z'}; public static void main(String[] args) { write(); read(); } /** * FileWriter 测试 */ public static void write() { FileWriter out = null; try { // 给定文件名,并指定追加模式:true,续写到文件中 out = new FileWriter("file.txt",true); out.write("字节流转换为字符的案例");// 写入中文字符 out.write("0123456789");// 写入数字并换行 out.write(chs);// 写入字符数组 } catch (Exception e) { e.printStackTrace(); }finally { try { if (out != null) out.close(); }catch (Exception e) { e.printStackTrace(); } } } /** * FileReader 测试 */ public static void read() { FileReader in = null; char[] buff = new char[10]; int len = 0; try { in = new FileReader("file.txt"); System.out.println("read : " + (char)in.read());// 读取一个字符 in.skip(5);// 跳过5个字符 len = in.read(buff, 0, 10);// 从0开始读取10个字符缓存到buff中 System.out.println("buff : " + new String(buff,0,len)); // 读取剩余字符 while((len = in.read(buff)) != -1){ System.out.println("str : " + new String(buff,0,len)); } } catch (Exception e) { e.printStackTrace(); }finally { try { if (in != null) in.close(); }catch (Exception e) { e.printStackTrace(); } } } }