1,这些io流类在api里的继承图
类 FileReader
java.io.FileReader
类 FileWriter
java.io.FileWriter
java.io
类 BufferedWriter
java.io.BufferedWriter
java.io
类 OutputStreamWriter
java.io.OutputStreamWriter
类 FileOutputStream
java.io.FileOutputStream
2,用缓冲流包装那些低级流
// 如果需要包装的是字符流就能一步搞定 ,BufferedReader(Reader in)
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
//如果包装的是字节流,需要用到InputStreamReader这个类,因为它是字节流通往字符流的桥梁InputStreamReader(InputStream in)
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
//缓冲字符流和缓冲字节流最重要的区别是,缓冲字符流有一个读一行和写一个空格符的方法,缓冲字节流没有
3,读写的格式
第一种:读字节数组
byte[] b = new byte[8192];
int len = 0;
//看用了多久
long before = System.currentTimeMillis();
while((len=fis.read(b))!=-1){
fos.write(b, 0, len);
}
第二种:一行行读
//如果读到null就不读了
String line = null;
while((line=br.readLine())!=null) {
System.out.println(line);
}