多行到一个文本文件? - Java

时间:2016-03-13 09:37:00

标签: java text-files filewriter printwriter

如何将多行保存到一个文本文件中?

我想打印" 新行"每次执行代码时都在同一文本文件中。

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!");
    }

我能够创建新文件,但每次执行代码时都无法创建新行。

4 个答案:

答案 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',以便在那里插入一个新行。