File I/O(Input/Output):文件的輸入和輸出流。
一般來說迷郑,我們用File I/O的主要用法就是:
1枝恋、可以得到一個永久的副本。
2三热、一個程序的輸出可以輸入到另一個程序鼓择。
3、可以自動輸入就漾,不必手動輸入呐能,最主要還是一個方便,比方說寫一個網(wǎng)頁的時候抑堡,可以寫個按鈕摆出,做個功能,比方說我最近涉及到的畢業(yè)設計首妖,就是可以寫一個File I/O來弄一個Json和Xml文件之間的自動轉換偎漫,極為方便。
筆者之前犯蠢了有缆,自己在寫的時候不小心把兩個功能給弄混了象踊,結果導致我的Json文件內容的丟失。
還好棚壁,進行回滾杯矩,將原本的內容給找回來了,開發(fā)常用小知識get袖外。?
回滾Rollback:程序或數(shù)據(jù)處理錯誤史隆,將程序或數(shù)據(jù)恢復到上一次正確狀態(tài)的行為。
首先是我們的輸入流:Input Stream
打開文件文本進行輸入曼验,鏈接到流之后進行讀取泌射。
我們這里用到的是FileReader類粘姜,這個類可以按字符讀取流中的數(shù)據(jù),當然FileInputStream也能使用熔酷。
準備一個文件孤紧,定義為text.txt,假設我這個文件中的內容是1纯陨,2坛芽,3。(進行測試用)
然后讀取該文本文件的內容翼抠,即得到:FileReader?readtext= new FileReader("text.txt");
之后的話就是鏈接到流進行讀取咙轩,得到:BufferedReader inread = new BufferedReader(readtext);
但是這樣的話,是沒有辦法讀取到控制臺的阴颖,我們需要將其轉化為字符串形式活喊,才能將其讀出到控制臺。
這里我用到一個readLine()方法量愧,看表面意思也可以知道是逐行讀取钾菊,只要每一行都不為空,那就打印到控制臺偎肃。
按照這個邏輯的話煞烫,可以定義一個空的字符串,比方說String test1 = null;
然后利用一個while循環(huán)來進行遍歷累颂,之后打印出來滞详,得到:while((test1 = inread.readLine) != null)
System.out.println(test1);
結果:
其次是我們的輸出流:Output Stream
與輸入流Input Stream對應,輸出流Output Stream指的便是將內容輸出到文件文本當中紊馏。
與FileReader對應料饥,我們這里要使用的便是FileWriter與BufferedWriter,當然朱监,類似FileOutputStream和PrintWriter也能使用岸啡。
相似的,假設我們要將內容都輸出到已經建立好的文件textsecond.txt中赫编。
首先是定位到這個文件巡蘸,可以得到FileWriter writertext = new FileWriter("textsecond.txt");
其次便是BufferedWriter outwriter = new BufferedWriter(writertext);
這里比方說我們要輸入到testsecond.txt文件中的內容是10個number,那么我們可以寫一個循環(huán)遍歷1到10擂送,然后通過輸出流將10個number打印到文件當中去悦荒。
for(int number = 1;number <= 10;number++){
outwriter.write("number");
outwriter.newLine();
}
System.out.println("had been printed...");
結果:
總結:
總的來說,F(xiàn)ile I/O 輸入輸出并沒有那么難团甲,難度適中,不過FileWriter和PrintWriter等之間還是有點區(qū)別的黍聂,比方說println這個讀出的方法只有在PrintWriter的時候才能使用躺苦,其他當然還有區(qū)別身腻,具體什么區(qū)別的話,等我下次再進行整理了匹厘,今天就先講這么多了嘀趟。