在java中调用方法向文本文件添加行

在java中调用方法向文本文件添加行,java,text,java-io,Java,Text,Java Io,我希望能够调用这样的方法 public void Printer(String ToPrint)throws IOExcpetion{ BufferedWriterName.write(ToPrint); } 这只会在已经创建的文件中添加一行文本。 但这段代码需要使用相同的方法 FileWriter Write=new FileWriter("c:\\filename.txt"); BufferedWriter BufferedWriterName =new BufferedWriter(Wr

我希望能够调用这样的方法

public void Printer(String ToPrint)throws IOExcpetion{
BufferedWriterName.write(ToPrint);
}
这只会在已经创建的文件中添加一行文本。 但这段代码需要使用相同的方法

FileWriter Write=new FileWriter("c:\\filename.txt");
BufferedWriter BufferedWriterName =new BufferedWriter(Write);
我担心,如果存在上述代码,每次调用该方法时,它都会创建一个新文件。是否有任何方法在调用时只在.txt文件中打印新行?
我是这个领域的真正初学者。我以前从未从java创建过文本文件,所以完全不同的方法就可以了。

通过将
true
传递给
FileWriter
构造函数,以追加模式打开
文件

FileWriter Write=new FileWriter("c:\\filename.txt",true);

构造一个FileWriter对象,给定一个文件名,该文件名带有一个布尔值,指示是否追加写入的数据


通过将
true
传递给
FileWriter
构造函数,以追加模式打开
文件

FileWriter Write=new FileWriter("c:\\filename.txt",true);

构造一个FileWriter对象,给定一个文件名,该文件名带有一个布尔值,指示是否追加写入的数据


我以前从未用java创建过文本文件,所以完全不同的方法就可以了。
-好了,你可以用它来简化这个过程

import java.io.File;
import java.io.IOException;

import com.google.common.base.Charsets;
import com.google.common.io.Files;

public class FileAppendTest {

  /**
   * @param args
   * @throws IOException 
   */
  public static void main(String[] args) throws IOException {
    File file = new File("c:\\filename.txt");
    Files.append("\nline of text to be appended", file, Charsets.UTF_8);
  }
}

我以前从未用java创建过文本文件,所以完全不同的方法就可以了。
-好了,你可以用它来简化这个过程

import java.io.File;
import java.io.IOException;

import com.google.common.base.Charsets;
import com.google.common.io.Files;

public class FileAppendTest {

  /**
   * @param args
   * @throws IOException 
   */
  public static void main(String[] args) throws IOException {
    File file = new File("c:\\filename.txt");
    Files.append("\nline of text to be appended", file, Charsets.UTF_8);
  }
}

保持文件打开。每行打开和关闭文件效率极低。请保持文件打开。为每一行打开和关闭它的效率极低。错误,行终止符会终止该行。这意味着它们在末尾,而不是开头。@EJP对
\n
的使用取决于旧文件末尾是否有空行。如果有(通常是正确的),则应在附加行的末尾使用
\n
。无论如何,这不是这个答案的重点,重点是展示不同的、更好的肥皂法:)胡说八道。除非文件以换行符开头,而不是以换行符结尾,否则您的代码是不正确的。EJP,您是否声明,从此处发布的代码示例中获取的代码应该盲目复制粘贴到生产代码中,而不进行任何测试,也不可能调整到特定的目的?我不知道您从何处得到这种荒谬的说法,但这肯定不是我的。别把话塞进我的嘴里。嗯,线路终结者终止了线路。这意味着它们在末尾,而不是开头。@EJP对
\n
的使用取决于旧文件末尾是否有空行。如果有(通常是正确的),则应在附加行的末尾使用
\n
。无论如何,这不是这个答案的重点,重点是展示不同的、更好的肥皂法:)胡说八道。除非文件以换行符开头,而不是以换行符结尾,否则您的代码是不正确的。EJP,您是否声明,从此处发布的代码示例中获取的代码应该盲目复制粘贴到生产代码中,而不进行任何测试,也不可能调整到特定的目的?我不知道您从何处得到这种荒谬的说法,但这肯定不是我的。别把话塞进我嘴里。