1.对于字符流个字节流的区分使用:只要是处理纯文本数据,就优先考虑使用字符流【readerh h 和 writer】。 除此以外都使用字节流。数组
2.对于使用字节流的时候,大部分使用 BufferedInputStream 和 BufferedOutputStream 这两个对象,效率最快。编码
实例:对象
bis = new BufferedInputStream(new FileInputStream(pathName));
bos = new BufferedOutputStream(response.getOutputStream()); //下载的使用的输出流对象utf-8
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();get
3.对于字符流使用 BufferedWriter 和 BufferedReader it
实例:效率
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();file
---------------------------------------------------------------------------下载
进行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");