字节流的两个顶层父类:
1,InputStream 2,OutputStream
字符流的两个顶层父类:
1,Reader 2,Writer
需求::将一些文字存储到硬盘中一个文件中:
如果要操作文字数据优先考虑字符流 要将数据存储到硬盘上 需要字符流中的输出流
创建一个可以往文件中写入字符数据的字符输出流对象
既然是往一个文件中写入文字数据 那么在创建对象时,就必须明确该文件(用于存储数据的目的地)
如果文件不存在 就重新创建
如果文件存在 就会被覆盖
调用Writer对象中的writer(string)方法,写入数据
其实数据写入到临时存储缓冲区中 可以使用flush将缓冲区的数据刷新出来
关闭文件时使用close 也会调用flush函数
另外当文件被close之后再对流进行读写或者关闭都是非法的
public class FileDemo {
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
FileWriter fw = new FileWriter("1.txt");
fw.write("this is java\r\n io application"); //对字符串进行换行操作在Windows中需要两个转义字符 \r\n
fw.flush();
fw.close();
}
}
但这个程序在其他操作系统就不一定可以执行成功了 因为每个系统的换行符不一定一致
我们可以获取当前系统的换行符
private static final String FILE_SEPATATOR = System.getProperty("line.separator");//获取系统的换行符
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("1.txt");
fw.write("this is java"+FILE_SEPATATOR+"io application");
fw.append("okokokokok"); //使用append进行对文件的续写
fw.flush();
fw.close();
}
}