FileWirter类 -> 字符流输入输出,只能读写纯文本格式(笔记本notebook能打开的东西)。
创建步骤。
1) import java.io.FileWriter; 导包
2) FileWriter fw = new FileWriter("name.txt"); (name 为文件名称,若文件未被创建,则自动生成一个新文件)。
3) fw.write(参数); 写入东西。 参数可以为int String char[]
4) fw.close(); 关闭流,释放资源。
注意:
1) new FileWriter("name.txt") 中,若文件已存在,则写入内容覆盖之前所有内容。如果不想覆盖而是接着写入内容,则使用new FileWriter("name.txt", true); 来创建对象。
2) IO流需要考虑异常,暂时可以在方法后写 throws IOException 告诉电脑遇到此类IO异常,不处理。
换行符:
windows: \r\n
macOS: \n
Linux: \n
ASCII码表:
48代表0
65代表A
97代表a
FileReader类 -> 字符输入流
1) import java.io.Reader 导包
2) FileReader fr = new FileReader("fileXxx.txt"); 创建对象
3) fr.read(); 读入数据
4) fr.close(); 关闭
读取技巧:
1) int ch;
while ((ch = fr.read()) != -1) {
System.out.println((char)ch);
}
2) System.out.println((char)ch);
3) public int read(char[] buf) 一次读取多个字符数组的数据。
4 一次读取多个字符数组的标准格式。
int len;
while((len = fr.read(buf))!=-1) {String str = new String(buf,0,len);
System.out.println(str);
}
由于硬盘读写速度很慢,所以尽量一次操作多个字符来达到提高效率的目的。
BufferedWirter和BufferedReader 相比较于FileWriter和FileReader, 它有一个长度为8192的char[]字符数组作为缓存。
BufferedWirter操作步骤:
FileWriter fw = new FileWriter("name.txt");
BufferedWriter bw = new BufferedWriter(fw);
简化可以写成:BufferedWriter bw = new BufferedWriter(FileWriter("name.txt"));
后续操作与之前FileWriter 完全一致。
最后使用 bw.close(); 将两个writer 一同关闭。
BufferedWriter 另外一种换行方式(除了"\r\n,\n"): public void newLine();
example': bw.newLine(); 根据不同系统 自动选择换行。推荐只用这种方式换行。
new BufferedRead(FileReader);
剩下都一样。
br.readLine(); 读取一行。return的是String 字符串。若没有下一行了 则return null。