2014-12-01 77 views
1

我想將數據追加到包含數據的文件: -在java中追加到文本文件的正確方法是什麼?

A 
B 
C 
D 
E 

我寫了下面的代碼: -

import java.io.*; 
public class AddtoFile 
{ 
    public void main() 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     try 
     { 
      FileWriter fw=new FileWriter("Student.txt",true); 
      BufferedWriter bw=new BufferedWriter(fw); 
      for(int i=0;i<5;i++) 
      { 
       System.out.println("Enter Phone numbers"); 
       String phone=br.readLine(); 
       bw.write(phone); 
       bw.newLine(); 
      } 
      bw.close(); 
      fw.close(); 
     }catch(Exception e){System.out.println(e);} 
    } 
} 

但即使給予必要的投入,當我打開文件我後發現前面的數據沒有附加任何內容。請指出我的邏輯中是否有任何錯誤,因爲我的編譯器在代碼中報告沒有語法錯誤。 對於一個小的詳細信息,如果(有書面的代碼中的一些錯誤的一個文件中。)

import java.io.*; 
class WritetoFile 
{ 
    void main()throws IOException 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     try 
     { 
      FileWriter fw=new FileWriter("Student.txt"); 
      BufferedWriter bw=new BufferedWriter(fw); 
      for(int i=0;i<5;i++) 
      { 
       System.out.println("Enter your name"); 
       String name=br.readLine(); 
       bw.write(name); 
       bw.newLine(); 
       } 
       bw.close(); 
       fw.close(); 
      }catch(Exception e){System.out.println(e);} 
     } 
    } 

(請不要告訴我,因爲我沒有得到這樣的幫助,從JavaDoc中也一樣)

+6

您是如何運行此代碼?您的'main'方法的簽名不適合正常的Java入口點... – 2014-12-01 16:11:41

+1

@JonSkeet是正確的(一如既往...)。你確定你的程序得到執行嗎? – Axel 2014-12-01 16:14:01

+0

那麼@Axel它確實要求必要的輸入,如果這就是你要求的 – 2014-12-01 16:21:54

回答

1

main方法簽名是錯誤的。它應該有String[]參數來運行代碼。爲了追加到一個文件,你可以按如下修改FileWriter實例:

FileWriter fw = new FileWriter("Student.txt", true); // true means append 
+0

請解釋 - 什麼是使用新的File命令 – 2014-12-01 16:18:20

+0

您不需要使用'FileWriter(File,boolean)'構造函數 - 'FileWriter(String,boolean)'也應該工作。 – 2014-12-01 16:26:16

+0

@JonSkeet對,我錯過了:)更新。 – manouti 2014-12-01 16:35:47

1

您應該使用Files#append()並在OpenOption參數中給它StandardOpenOptions.APPEND

0
import java.io.*; 
public class AddtoFile 
{ 
    public void main(String arg[]) 
    { 
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
     try 
     { 
      FileWriter fw=new FileWriter("Student.txt",true); 
      for(int i=0;i<5;i++) 
      { 
       System.out.println("Enter Phone numbers"); 
       String phone=br.readLine(); 
       phone=phone+"\n"; 
       fw.write(phone); 
      } 
      fw.close(); 
     }catch(Exception e){System.out.println(e);} 
    } 
} 

這應該很好地工作。

參考鏈接:http://learn2geek.com/file-handling-java/

+0

有沒有需要BufferedWriter? @AnkitNanglia – 2014-12-05 02:23:46

+0

沒有FileWriter寫入方法會做需要 – 2014-12-05 09:05:01

相關問題