字符流
主要用来操作文本文件
字符流-文件输入流(FileReader)
其中的构造方法和方法和字节流输入流FileInputStream非常类似,差别就是单位是char
构造方法
FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader。 |
FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader |
读取方法
int read()
调用一次读到一个数据字节,返回的int值就是读到的数据
如果已到达文件末尾,则返回 -1
FileReader reader = new FileReader("1.txt");
int n;
while((n=reader.read())!=-1){
System.out.print((char)n);
}
int read(char[] b)
调用一次本方法表示可以读取多个数据
读到的内容保存传入的char数组b中
返回的是本次调用方法读到的数据字节个数
FileReader reader = new FileReader("1.txt");
char[] a=new char[5];
int n;
while((n=reader.read(a))!=-1){
System.out.print(new String(a,0,n));
}
字符流-文件输出流(FileWriter)
write方法只会将数据写入到缓存区,而flush和close都会将缓存区的数据写入到文件中,但是flush方法只是刷新并没有关闭流资源,后面依然可以继续写入数据,而close是关闭流资源,所以后面不能继续写入数据了
构造方法
append--
一个 boolean 值,如果为 true
,则将数据写入文件末尾处,而不是写入文件开始处。
FileWriter(File file) 根据给定的 File 对象构造一个 FileWriter 对象。 |
FileWriter(File file, boolean append) 根据给定的 File 对象构造一个 FileWriter 对象。 |
FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象。 |
FileWriter(String fileName, boolean append) 根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 |
读取方法
特有的方法: 可以直接写字符串,其余与字节流差不多
void write(String str)
写入字符串。
void write(String str, int off, int len)
写入字符串的一部分
FileWriter writer = new FileWriter("1.txt");
writer.write("撒大苏打");
writer.flush();
void write(char[] a)
调用一次,可以把一个char数组中的数据写入
char[] f={'阿','是','实'};
writer.write(f);
writer.close();