一、文件字符流(对文本文件操作)
1、FileReader和FileWriter介绍
FileReader和FileWriter是字符流,即按照字符来操作io
2、FileReader相关方法
a、new FileReader(File/String)
b、read:,每次读取单个字符,返回该字符,如果到文件末尾返回-1
c、read(char[ ]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-1
相关API:
a、new String (char [ ]):将char[ ]转换成String
b、new String (char [ ],off ,len):将char[]的指定部分转换成String
3、FileWriter常用方法
a、new FileWriter(File/String) : 覆盖模式,相当于流的指针在首端
b、new FileWriter(File/String ,true) : 追加模式,相当于流的指针在尾端
c、write(int):写入单个字符
d、write(char[ ]):写入指定数组
e、write(char[ ],off , len): 写入指定数组的指定部分
f、write(string):写入整个字符串
g、write(string,off,len):写入字符串的指定部分
相关API: String类:toCharArray:将String转换成char[ ]
note : FileWriter使用后,必须关闭(close)或刷新 (flush),否则写入不到指定的文件
二、文件字符流(使用FileReader和FileWriter进行操作文件)
1、FileReader
@Test public void test(){ String filePath = "E:\\mine\\hello.txt"; FileReader fileReader = null; int readLen = 0; char[] buf = new char[5]; try { fileReader = new FileReader(filePath); while ((readLen = fileReader.read(buf)) != -1){ System.out.println(new String(buf,0,readLen)); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (fileReader != null){ fileReader.close(); } } catch (IOException e) { e.printStackTrace(); } } }
2、FileWriter
@Test public void test02(){ String filePath = "E:\\mine\\fileWriter.txt"; FileWriter fileWriter = null; char[] chars = {'a','b','c'}; try { fileWriter = new FileWriter(filePath); // 默认覆盖写入 true fileWriter.write('H'); fileWriter.write(chars); fileWriter.write("郭策".toCharArray(),0,1); fileWriter.write("桑高杰"); } catch (Exception e) { e.printStackTrace(); } finally { try { if (fileWriter != null){ fileWriter.close(); } } catch (Exception e) { e.printStackTrace(); } } }