java中的文件讀取和文件寫出:如何從一個文件中獲取內容以及如何向一個文件中寫入內容


 1 2 
 3 import java.io.BufferedReader;
 4 import java.io.BufferedWriter;
 5 import java.io.File;
 6 import java.io.FileInputStream;
 7 import java.io.FileNotFoundException;
 8 import java.io.FileOutputStream;
 9 import java.io.IOException;
10 import java.io.InputStreamReader;
11 import java.io.OutputStreamWriter;
12 import java.io.UnsupportedEncodingException;
13 
14 /**
15  * 文件讀取四步驟
16  * ---------要保證文件存在,不能保證就需判斷是否存在,在這里手動創建一個文件text.txt以確保存在
17  * 1:獲取文件
18  * 2:將文件寫入到文件輸入流中<文件輸入流是字節流>
19  * 3:將文件流寫入到輸入流Reader中
20  * 4:將輸入流文件放到緩沖流BufferReader中
21  * 四步驟:執行完畢文件會讀入緩沖流
22  * 5:從緩沖流中每次讀取一行打印輸出
23  * 6:關閉資源<流>
24  * 文件寫出同理:
25  * @author NEXT_NiGHT
26  *
27  */
28 public class FileRW {
29 
30     public static void main(String[] args) {
31     //----------------------文件讀入    
32         //1
33         File file = new File("text.txt");
34         try {
35             //2
36             FileInputStream fis=new FileInputStream(file);
37             //3
38             InputStreamReader isr=new InputStreamReader(fis,"utf-8");//FileInputStream字符流轉換成字節流要注意編碼
39             //4
40             BufferedReader br=new BufferedReader(isr);
41           //5
42             String line;//用來保存讀取到的數據
43             while((line = br.readLine())!=null){//每次讀取一行不為空
44                 System.out.println(line);
45             }
46         //6
47             br.close();
48             isr.close();
49             fis.close();
50             
51 
52     //----------------------文件寫出
53             //1鏈接文件<要寫出的位置>
54             File file2=new File("newtext.txt");
55             //2文件輸出流
56             FileOutputStream fos=new FileOutputStream(file2);
57             //3輸出流
58             OutputStreamWriter os=new OutputStreamWriter(fos,"utf-8");
59             //4寫入緩沖流
60             BufferedWriter bw=new BufferedWriter(os);
61             //5寫入
62             bw.write("七月七日長生殿\n");
63             bw.write("夜半無人私語時\n");
64             bw.write("在天月作比翼鳥\n");
65             bw.write("在地願為連理枝\n");
66             //6關閉資源
67             bw.close();
68             os.close();
69             fos.close();
70         } catch (FileNotFoundException e) {
71             e.printStackTrace();
72         } catch (UnsupportedEncodingException e) {
73             e.printStackTrace();
74         } catch (IOException e) {
75             e.printStackTrace();
76         }
77     
78     
79     
80     
81     }
82 }

以上代碼完整闡述了從文件中讀取的內容並打印輸出,以及如何向一個文件中寫入內容:

完整的eclise java代碼,可直接運行;

text.txt文件:

七月七日長生殿
夜半無人私語時
在天願作比翼鳥
在地願為連理枝

  

注意:

  33行位置鏈接一個文件,若此時文件不存在那么進行后面的操作就會報異常,提示文件不存在。如果未進行文件是否存在的判定那么就必須保證文件是存在的。所以運行之前要在工程中創建一個文件text.txt

  55行的位置同樣鏈接了一個文件,若文件不存在是否后續操作也會報異常呢?答案是否定的,56行的操作會自動創建一個文件,並且后面寫入內容時會存入此文件

  62行寫入文件時用到了write這個函數,執行完畢后如果我們換掉寫入的內容,那么newtext.txt這個文件中的內容將是新的內容,write函數將會覆蓋掉文件原來的內容

                                                                         2015-07-20


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM