2016-01-21 37 views
-2

我試圖編輯一個我剛創建的現有文件,到目前爲止我還不知道它是如何完成的。編輯一個已經存在的文本文件

任何人都可以告訴我如何和請逐行解釋代碼的作用?

import java.io.*; 

public class Hey { 

    public static void main(String[] args)throws Exception{ 
     BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); 

     System.out.println("Title"); 
     String title = br.readLine(); 
     File f = new File(title +".txt"); 
     f.createNewFile(); 
     FileWriter fw = new FileWriter(f); 
     BufferedWriter bw = new BufferedWriter(fw); 
     System.out.println("What you want to input in the text"); 
     String text = br.readLine(); 
     bw.write(text); 
     bw.flush(); 
     bw.close(); 


    } 
} 
+1

1.此代碼有資源泄漏,並沒有適當的異常處理(除了簡單地拋出一個通用異常給調用者*壞* - 尤其是在main()方法中)。 2.你的標題建議你想編輯一個已經存在的文件*。這與上面的代碼片段中的'f.createNewFile();'一起怎麼做? – morido

+0

...目前您的代碼將覆蓋目標文件的所有內容(如果它已存在)。 – morido

回答

0
BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); 

創建從標準輸入讀取緩衝器。

String title = br.readLine(); 

從此緩衝區讀取,直到找到返回字符序列('\ n','\ r'或「\ r \ n」)。除返回序列外的全部行將保存爲title

File f = new File(title +".txt"); 

使用從控制檯讀取的名稱創建一個File對象。

f.createNewFile(); 

如果該文件不存在,則創建該文件。

FileWriter fw = new FileWriter(f); 
BufferedWriter bw = new BufferedWriter(fw); 

創建一個緩衝寫入器寫入fw

String text = br.readLine(); 

再次從控制檯讀取一行。

bw.write(text); 

將此行寫入緩衝區。

bw.flush(); 

確保將整個緩衝區刷新到文件中(寫入文件中)。

bw.close(); 

關閉您的緩衝作家的緩衝區。您還應該關閉閱讀器緩衝區br和FileWriter fw

相關問題