2012-11-07 39 views
0

我已完成程序的基礎知識。在不同時間將多行寫入文件

這個想法是,用戶可以指定一個形狀的顏色寬度高度等等。輸入數據後,調用構造函數創建輸出,或者還有其他選項創建用戶可以指定的輸出。

我的目標是將所有這些輸出轉換爲文本文件。

目前我創建了一個掃描儀讀取:

static Scanner input = new Scanner(System.in); 

然後在我的主要驅動方法創建一個格式化:

public static void main(String[] args) { 
     Formatter output = null; 
     try{ 
      output = new Formatter("output.txt"); 
     } 
     catch(SecurityException e1){ 
      System.err.println("You don't have" + 
        " write accress to this file"); 
      System.exit(1); 
     } 
     catch(FileNotFoundException e){ 
      System.err.println("Error opening or" + 
        " creating file."); 
      System.exit(1); 
     } 

每次當我想到輸出我已經把這段代碼:

output.format("%s", input.nextLine()); 

最後我用

關閉文件
output.close() 

該文件已創建,但當前爲空。我知道我在正確的軌道上,因爲我試着這樣做:

output.format("%d", i); 

其中i爲0-2的整數和文件正確寫入。

但是,我似乎無法讓它適用於整行或輸出。

請幫忙!

+0

您是否嘗試輸出常量字符串而不是用戶輸入?或者類似的東西:'output.format(「Input:%s」,input.nextLine());' –

+0

你打印了這個,看看有沒有可用的值System.out.println(input.nextLine()) – Suranga

回答

1

我不是專家,但爲什麼你不能只使用「FileWriter」?
是否因爲您想要捕捉這些例外情況以向用戶顯示有用的信息?
還是我完全誤解了這個問題? - 如果是這樣,對不起,只是無視這一點。

import java.io.FileWriter; 
import java.io.IOException; 

try 
{ 
FileWriter fout = new FileWriter("output.txt"); // ("output.txt", true) for appending 
fout.write(msg); // Assuming msg is already defined 
fout.close(); 
} 
catch (IOException e) 
{ 
e.printStackTrace(); 
}