如何将多行保存到一个文本文件中?
我想打印" 新行"每次执行代码时都在同一文本文件中。
try {
FileWriter fw = new FileWriter("Test.txt");
PrintWriter pw = new PrintWriter(fw);
pw.println("New Line");
pw.close();
}
catch (IOException e)
{
System.out.println("Error!");
}
我能够创建新文件,但每次执行代码时都无法创建新行。
答案 0 :(得分:1)
每次运行时都会创建一个新行,问题是您在打开文件时截断该文件。我建议你每次都附加到文件中。
try (FileWriter fw = new FileWriter("Test.txt", true); // true for append
PrintWriter pw = new PrintWriter(fw)) {
pw.println("New Line");
} // try-with-resource closes everything.
注意:打开和关闭每行的文件是很昂贵的。如果你这么做很多,我建议每次打开文件并刷新输出。
答案 1 :(得分:1)
你这样做:
FileWriter fw = new FileWriter("Test.txt");
每次执行该行时都会覆盖文件...
但是您需要将数据附加到文件
FileWriter fw = new FileWriter("Test.txt", true);
看看doc
中的构造函数答案 2 :(得分:1)
您需要以追加模式打开文件。你可以这样做:
// Euclid algorithm for Greates Common Divisor
function gcd(a, b)
{
return !b ? a : gcd(b, a % b);
}
// Least Common Multiple function
function lcm(a, b)
{
return a * (b / gcd(a,b));
}
// LCM of all numbers in the range of arr=[a, b]
function range_lcm(arr)
{
// Swap [big, small] to [small, big]
if(arr[0] > arr[1]) (arr = [arr[1], arr[0]]);
for(x = result = arr[0]; x <= arr[1]; x++) {
result = lcm(x, result);
}
return result;
}
alert(range_lcm([8, 5])); // Returns 840
以下是documentation。
答案 3 :(得分:1)
将true作为第二个参数传递给FileWriter以打开“追加”模式。
FileWriter fw = new FileWriter("filename.txt", true);
这将使您的文件在追加模式下打开,这意味着,每次您写入文件时,您的结果都会附加到文件的末尾。你也可以在每个内容写入后写'\ n',以便在那里插入一个新行。