2014-12-01 38 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

相关问题