文章內容概括:
點擊文字即可跳轉
- 什麼是緩存流
- 緩存輸入流,讀取文件
- 緩存輸出流,寫入數據
- 綜合演練,讀取A文件,並將內容寫到B文件
- 課前回顧(FileIn/OutputStream,FileWrite/Reader)
什麼?你對IO還是一臉懵逼的狀態,那就戳我到IO常用實例大彙總,學習一些基礎知識吧~~
ps:這個常用實例大彙總目前只是在創建階段 嘻嘻 (^__^)
什麼是文件緩存流
文件緩存流包括:BufferReader和BufferWrite
緩存流增強了度寫文章的能力,可以成行的讀取數據,是字符輸出流和輸入流的一種
實例化:
BufferReader br=new BufferReader(Reader in);
BufferWrite bw=new BufferWrite(Write out);
常用方法:
BufferReader: readerLine(); 讀取一行的內容
BufferWrite:write(String s); 寫入一個字符串
newLine();換行寫入
讀取文件內容——BufferReader
String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
File file = new File(name);
//讀取數據
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
//將讀取的數據賦值給string
String string =null;//到達文件的尾部讀出來是空
while((string=br.readLine())!=null){
System.out.println(string);
}
//從上層流關閉到底層流
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
向文件寫入內容——BufferReader
// 向文件寫入數據
String[] content = { "我愛JAVA", "我愛安卓", "我愛HTML" };
String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
File file = new File(name);
try {
FileWriter fw = new FileWriter(file, true);// 第二個參數,true追加信息,false爲覆蓋(會將以前文件的內容覆蓋)
BufferedWriter bw = new BufferedWriter(fw);
for (String a : content) {
bw.write(a);// 寫入,一次寫入一個元素
bw.newLine();// 換行
}
// 上層流到底層流慢慢的關閉
bw.close();
fw.close();
System.out.println("寫入成功");
} catch (IOException e) {
e.printStackTrace();
}
前方高能:實戰演練!!!!
首先這裏創建了兩個文件c.txt,e.txt,將從c的讀取的內容
寫入到e,e裏面啥都沒有,下面是c文件的內容
//讀取c文件,寫向e
File fileC=new File("C:\\Users\\lenovo\\Desktop\\text\\c.txt");
File fileE=new File("C:\\Users\\lenovo\\Desktop\\text\\e.txt");
try {
FileReader fr=new FileReader(fileC);
FileWriter fw=new FileWriter(fileE);
BufferedReader br=new BufferedReader(fr);
BufferedWriter bw=new BufferedWriter(fw);
//先讀取C中的數據
String str=null;
//使用while循環進行每一行的讀取,邊讀取邊寫入
while((str=br.readLine())!=null){
bw.write(str);
//這裏有換行千萬別忘了
bw.newLine();
}
//關閉流
br.close();
bw.close();
fr.close();
fw.close();
System.out.println("寫入成功");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
這裏要注意,如果不加bw.newLine();效果是這樣滴
沒有進行換行
加上之後纔會變成這樣
步驟總結:
1.定義兩個要操作的文件
2.實例化FileReader/Writer類
3.將FileReader/Writer的對象傳入BufferReader/Writer,從而實例化緩存流對象
4.定義一個String字符串,用來存放每一次讀取的數據
5.使用while循環,一行一行讀,並把讀取到的數據寫到目標文件中
6.關閉流
今天的內容就是這些,謝謝大家的閱讀,比心~再見~