2016-05-17 157 views
0

我的工作,要求請求文件名的任務,然後拿文件和輸出它與編號行格式化像一個.txt文件:的Java輸出編號行格式化

[001]

[002]

我已經把碎片磨碎在一起,讓程序工作,但我似乎無法得到它以要求的格式寫入。任何幫助,將不勝感激。

這是我的代碼到目前爲止。

try { 

     System.out.println("Enter your source code file name: "); 
     Scanner scanner = new Scanner(System.in); 
     String file = scanner.nextLine(); 

     in = new FileInputStream(file); 
     out = new FileOutputStream(file + ".txt"); 

     int c; 
     while ((c = in.read()) != -1) { 
      out.write(c); 
     } 

    } catch (IOException e) { 
     System.out.println("Error!"); 

    } 
+0

你笑uldn't閱讀,並在同一時間寫入一個文件,這是更好地閱讀,做內存的更改,然後將其寫入文件 – Draken

+0

@Draken他們是不一樣的文件... – assylias

+0

好一點,錯過了附加.txt。 而不是使用'FileInputStream',應該更好地使用'BufferedReader'和'FileReader'。這可以輕鬆讀取線條。 [檢查這裏的例子](http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-by-line-using-java)。目前最大的問題是你正在逐字閱讀一行字符,這是緩慢而困難的。有更好的技術人員可以一次閱讀整行文本,而不需要完成這項工作 – Draken

回答

1

嘗試

BufferedReader in = new BufferedReader(new FileReader(fileName)); 
BufferedWriter out = new BufferedWriter(new FileWriter(fileName + '.txt'); 
String line; 
while ((line = in.read()) != -1) { 
    counter++; 
    out.write(String.format(..., counter, line)+"\r\n"); 
} 

有關String.format()方法看附加信息使用的BufferedReader/BufferedWriter將讀取和寫入你的文字線條就像這樣簡單:

String txtName = "test"; 
    String txtNumbered = "test1"; 
    try 
    { 
     BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtName+".txt"))); 
     BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(txtNumbered+".txt"))); 
     int count = 0; 

     String line = br.readLine(); 
     while(line != null) 
     { 
      count++; 
      bw.write(count+" "+line+"\r\n"); 
      line = br.readLine(); 
     } 

     br.close(); 
     bw.close(); 

    }catch(IOException e) 
    { 
     System.out.println(e); 
    } 
+0

請注意,您沒有提供OP的完整答案,請記住它是一個家庭作業問題,所以他們確實需要做一些調查! – Draken

+0

我應該刪除這個回答嗎?我是新來的,我很感謝你的指導。 – theVoid

+1

我認爲他們已經從之前的答案中發現了它,儘管它不那麼直觀,因爲它們強迫它們使用String.format()(它們應該學習它們)。留下你的答案,只是考慮到下次 – Draken

2

你只需要一個計數器來算你行:在這個link