2012-07-01 77 views
-1

我試圖通過詢問用戶所說的信息來更新包含電影列表和某些信息的.txt文件。 文件的組織是這樣的:將用戶輸入文本添加到.txt文件

0000-Movie Title Goes Here-9.99-ClientID 
0001-Same thing here-9.99-CLIENTID2 

等。

下面是我使用的代碼:

BufferedWriter output = new BufferedWriter(new FileWriter("movies.txt", true)); 
    System.out.println("Inserte numero de la pelicula:\n"); 
    String pelNum = CTeclado.ReadString(); 
    System.out.println("Inserte el titulo de la pelicula:\n"); 
    String pelName = CTeclado.ReadString(); 
    System.out.println("Inserte el precio de la pelicula:\n"); 
    String pelPrice = CTeclado.ReadString(); 
    output.append(pelNum + "-" + pelName + "-" + pelPrice + "-null"); 
    output.close(); 
    ReadM(); 
    System.out.println("Pelicula agregada!\n"); 
    MainMenu(); 

(該CTeclado的是用於讀取輸入)
此編譯沒有錯誤,但是,有一個在實際文件沒有改變.... 我的代碼有什麼問題?

+0

月底止究竟是文件你正在嘗試在jar文件所在的文件夾中進行修改?如果您只指定沒有路徑的文件名,則java假定該文件與正在執行的源代碼位於同一文件夾中。另外,請遵守java命名約定。變量和方法名稱以小寫字母開頭。 – fireshadow52

+0

是的,事實上,我已經嘗試將整個文件路徑放在字段上並獲得相同的結果。我知道,CTeclado類和它的方法被其他人傳遞給我,這是一個漫長的課,我稍後會編輯它。 – iVikD

+0

糟糕!我完全錯過了你使用錯誤方法的事實!使用['write()'](http://docs.oracle.com/javase/1.4.2/docs/api/java/io/Writer.html#write(java.lang.String,%20int,% 20int))方法將文件寫入文件:'output.write(「stuff goes here」);' – fireshadow52

回答

1

我想你應該嘗試下面的代碼

PrintStream output = new PrintStream(new File("movies.txt")); 
output.append(pelNum + "-" + pelName + "-" + pelPrice + "-null").append("\n"); 
+0

這最終實際上效果更好,因爲我的delete方法總是在文件末尾留出空行。非常感謝! – iVikD

0

使用output.write("\n" + "stuff goes here)就像@ fireshadow52說的那樣工作。
output.append("\n" + "stuff")也工作,必須確保.txt文件在該行(不是在新行)