2014-09-25 73 views
-1

假設用戶輸入他們的「ID#:1203103」,然後它會自動創建一個名爲1203103.txt的文本文件我該怎麼做?這是我的代碼。我的代碼中會改變什麼?在java中寫入文件名

String id = scan.nextLine(); 
File file = new File(id.txt); 
FileWriter fileWrite = new FileWriter(file); 
BufferedWriter bufferedWriter = new BufferedWriter(fileWrite); 
+0

我總是建議使用try catch,即異常處理,並在發生異常時嘗試理解它並用異常消息將其鏡像。 :) – Mubasher 2014-09-25 05:21:54

+1

@Mubasher由於OP的代碼甚至沒有編譯,異常處理將無濟於事。另外,您將始終獲得異常消息,而無需嘗試... catch。這對於運行時錯誤當然更可取。 – 2014-09-25 05:39:11

回答

1

你不能使用File file = new File(id.txt);,因爲它需要字符串argument.so你可以做一個像stringid+".txt"然後把它傳遞給new file();

String id = scan.nextLine(); 
File file = new File(id+".txt"); 
FileWriter fileWrite = new FileWriter(file); 
BufferedWriter bufferedWriter = new BufferedWriter(fileWrite); 
+1

請解釋您的更改如何解決問題。 – 2014-09-25 04:34:33

+0

@ Code-Apprentice好的謝謝 – 2014-09-25 04:38:55

+1

(id +「.txt」)現在我明白了謝謝:)) – 2014-09-25 04:39:43

1

您需要爲文件名創建一個String與預期的格式。要做到這一點,你可以簡單地使用+算子符連接String秒(自動非字符串轉換爲字符串):

String filename = id + ".txt"; 
2

你也應該圍繞用try和catch塊中的文件的創建,並當你對文件進行關閉它,像這樣:

Scanner scan = new Scanner(System.in); 
    String id = scan.nextLine(); 
    File file = new File(id + ".txt"); 
    FileWriter fileWrite = null; 
    BufferedWriter bufferedWriter = null; 
    try { 
     fileWrite = new FileWriter(file); 
     bufferedWriter = new BufferedWriter(fileWrite); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      scan.close(); 
      fileWrite.close(); 
      bufferedWriter.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
0

這是一種不同的方法,通過使用try with resource

String id = scan.nextLine(); 
try(BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(new File(id + ".txt"))) 
{ 
} 
catch(Exception e) 
{ 
}