IO流:
输入流(读)和输出流(写)
字节流(字节输入流和字节输出流):处理任何一种文件数据
字符流(字符输入流和字符输出流):只能处理纯文本文件
FileReader和FileWriter
FileWriter fw=new FileWriter("file.txt");
fw.write("hello");
fw.close();
追加字符
FileWriter(String fileName, boolean append)
FileWriter fw=new FileWriter("file.txt", true);
fw.write("\r\n");//换行
fw.write("word");
fw.close();
file.txt内容:abc
FileReader fr=new FileReader("file.txt");
int result=fr.read();//返回值是int型(ASCII或Unicode数值
System.out.println(result);//97
result=fr.read();
System.out.println(result);//98
result=fr.read();
System.out.println(result);//99
result=fr.read();
System.out.println(result);//-1
result=fr.read();
System.out.println(result);//-1
fr.close();
FileReader fr=new FileReader("file.txt");
while(fr.read()!=-1) {//每次read调用,都会读取新字符,直到-1
System.out.println(fr.read());
}
结果:
98
-1
FileReader fr=new FileReader("file.txt");
int result;
while((result=fr.read())!=-1) {
System.out.println(result);//(char)result:abc
}
结果:
97
98
99
file.txt=abcde
FileReader fr=new FileReader("file.txt");
char[] buf=new char[2];
int length;
while((length=fr.read(buf))!=-1) {
String str=new String(buf,0,length);
System.out.println(str);
}
fr.close();
结果:
ab
cd
e
BufferedReader和BufferedWriter
FileReader fr = new File("file.txt");
BufferedReader br = new BufferedReader(fr);
...
br.close();
file.txt:
abcde,
xyz.
整行读取
File file=new File("file.txt");
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
}
fr.close();
结果:
abcde,
xyz.