使用Commons IO如何向文件中写入新行?

7
我知道这个。
FileUtils.writeStringToFile(myfile.txt, "my string", true);

将“my string”添加到myfile.txt的末尾,使其看起来像:
previous stringsmy string

但是有没有办法使用Commons IO将字符串写入文件的新行中,以更改文件为

previous strings
my string
3个回答

8

Java使用\n来表示换行,因此可以尝试以下方法:

FileUtils.writeStringToFile(myfile.txt, "\nmy string", true);

2
将 \n 放在字符串末尾。否则文件会以空行开头。像这样:FileUtils.writeStringToFile(myfile.txt, "my string\n", true); - cnmuc
我同意你的评论,但这是一个特殊情况。 - user987339
对我来说,每次都会创建一个新文件,然后追加一个新字符串...有什么原因吗?这是我的代码: File file=new File("/Users/akshitbhatia/Documents/workspace/SNLP/src/miniProject/output.txt"); for(int i=1;i<3;i++){ String result="\n"+P1+factToken[0]+P2+value+P3+"\t."; FileUtils.writeStringToFile(file, result, "UTF-8"); } - akshit bhatia
1
@akshitbhatia 请使用FileUtils.writeStringToFile(file, result, "UTF-8", true)代替FileUtils.writeStringToFile(file, result, "UTF-8"),这将追加到现有文件中。 - user987339

4

声明

final String newLine = System.getProperty("line.separator");

在调用中,FileUtils.writeStringToFile(myfile.txt, yourVariable+newLine, true);

我使用了一个变量,因此这对我更有用。


2

除了上面提到的响应之外;

如果您没有大文件,可以编写:

List<String> lines = Files.readAllLines(Paths.get(myfile.txt), StandardCharsets.UTF_8);
lines.add("my string");
Files.write(Paths.get(myfile.txt), lines, StandardCharsets.UTF_8);  

通常在文件中间添加新行是比较好的做法

List<String> lines = Files.readAllLines(Paths.get(myfile.txt)), StandardCharsets.UTF_8);
lines.add(6, "my string"); // for example
Files.write(Paths.get(myfile.txt), lines, StandardCharsets.UTF_8); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接