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");