3

我正在尝试写入已经存在的文件。据我在论坛上看到的,这段代码应该重写旧文件,而不是重写,而是将文件名放入 [] 括号并创建一个新文件。任何的想法?

 try {
   File file = new File("/home/erik/glassfish3/" + selectedMss + ".ini");
   BufferedWriter output = new BufferedWriter(new FileWriter(file));
   for (String newline : content) {
     output.write(newline + "\n");
   }
   output.close();
 } catch (IOException e) {
   e.printStackTrace();
 }
4

2 回答 2

5

该类FileWriter有一个构造函数,该构造函数接受第二个布尔参数,该参数指定编写器是否应使用附加模式,该模式会将新内容附加到现有文件的末尾。

我还建议在一个finally块中关闭作者。

文档

BufferedWriter output;
try {                
    File file = new File("/home/erik/glassfish3/"+selectedMss+".ini");

    //Providing true for second argument specifies it should be appended. 
    output = new BufferedWriter(new FileWriter(file,true));

    for(String newline: content){
        output.write(newline+"\n");      
    }

} catch ( IOException e ) {
       e.printStackTrace();
}finally{
  output.close();
}
于 2013-07-09T08:52:10.700 回答
2

试试这个:

    try 
    {
           File file = new File("/home/erik/glassfish3/" + selectedMss + ".ini");
           BufferedWriter output = new BufferedWriter(new FileWriter(file,false));
            //true to append       //false to overwrite.

           for (String newline : content) 
           {
                  output.write(newline + "\n");
           }
           output.close();
           catch (IOException e)
           {
                  e.printStackTrace();
           }
    }

您还可以查看 java 文档以获得更多说明:

http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html

于 2013-07-09T08:54:35.930 回答