文件的读写的几种方式:
.....字节流
1.FIleInputStream + byte[]:把文件读取成字节
File file = new File("D://testA.txt");
FileInputStream fi = new FileInputStream(file);
byte[] bytes = new byte[(int)file.length()];
fi.read(bytes); //bytes里就存下读取的字节流信息了
fi.close();
2.FileOutputStream + byte[]: 把字节写到某个文件
byte[] bytes = ...//new byte[]{11,1,2,45,...};
FileOutputStream fo = new FileOutputStream(new File("D://aaa/testB.txt")); //如果没有会创建的,但是/aaa/不存在会导致报错
fo.write(bytes); //字节流信息就保存到文件里了
fo.close();
.....字符流
3.FIleReader + char[]:把文件读取成字符
File file = new File("D://testA.txt");
FileReader fr = new FileReader(file);
char[] chars = new char[(int)file.length()];
fr.read(chars); //chars里就存下读取到的字符了,这里可以转成String打印出来。
fr.close();
4.FileWriter + char[]: 把字符数组写到某个文件
char[] chars = "My name is Alice.".toCharArray();
FileWriter fw = new FileWriter(new File("D://testC.txt"));
fw.write(chars); //"My name is Alice."已经存到文件 testC.txt了
fw.close();
.....缓存流
(缓存流需要建立在已有的一个流上)
5.BufferedReader + FileReader: 按行读取
FileReader fr = new FileReader(new File("D://testA.txt"));
BufferedReader br = new BufferedReader(fr);
while(true){
String line = br.readLine();
if(line == null) break;
System.out.println(line);
}
6.PrintWriter + FileWriter: 按行写入数据到文件
FileWriter fw = new FileWriter(new File("D://testD.txt"));
PrintWriter pw = new PrintWriter(fw);
pw.println("My name is Alice Clone #1");
pw.println("The Real Alice is dead.");
pw.flush(); //这一步执行后才会写到文件里,当然也可以一句一句flush()