1.对于字符流个字节流的区分使用:只要是处理纯文本数据,就优先考虑使用字符流【readerh h 和 writer】。 除此之外都使用字节流。
2.对于使用字节流的时候,大部分使用 BufferedInputStream 和 BufferedOutputStream 这两个对象,效率最快。
实例:
bis = new BufferedInputStream(new FileInputStream(pathName));
bos = new BufferedOutputStream(response.getOutputStream()); //下载的使用的输出流对象
byte[] buff = new byte[1024];
int len = 0;
while ((len = bis.read(buff)) !=-1) { //bis对象把读取的字节存储到 数组buff中,返回存储的长度,如果读取完毕返回 -1
bos.write(buff, 0, len); //bos对象把buff字节写入到文件中
}
bos.flush();
bis.close();
bos.close();
3.对于字符流使用 BufferedWriter 和 BufferedReader
实例:
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("D://3.txt")));
String str = null;
while((str= br.readLine()) != null){ //br.readLine()把读取的数据返回一个String 类型的字符串
bw.write(str);
bw.newLine(); //换行
}
bw.flush();
br.close();
bw.close();
---------------------------------------------------------------------------
进行IO流的选择步骤
1。明确哪个是源,哪个是目的。(源就是从这边使用输入流进行读取,目的就是使用输出流写入到这边)
2。明确操作的是否为纯文本, 如果是纯文本就使用字符流,如果不是就使用字节流。
3。是否要提高效率,提高效率 使用对应的 缓冲流对象:【BufferedReader , BufferedWriter BufferedInputStream , BufferedOutputStream】
4。是否需要按照指定的编码表,将数据存到文本: 是的话 需要选择 InputStreamReader 和 OutputStreamWriter 这两个对象, InputStreamReader 和 OutputStreamWriter 是沟通字节流和字符流的对象。 按照一定的编码方法去读取或者写入文本。实例:
InputStreamReader inr = new InputStreamReader(new FileInputStream(file), "utf-8");
OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream(file), "utf-8");