将数字的控制台输出写入文本文件
Write console output of numbers to text file
快速提问,我不知道我在这里遗漏了什么。如果我的控制台输出连续 9 个数字,总共 9 行,我将如何将准确的输出写入外部文本文件,使其在文本文件中看起来相同。
假设控制台如下所示:
2 4 5 1 9 3 6 8 7
9 7 6 2 5 8 4 1 3
1 8 3 7 4 6 9 2 5
8 5 2 3 1 9 7 4 6
3 1 9 4 6 7 8 5 2
7 6 4 5 8 2 3 9 1
4 3 8 6 2 5 1 7 9
5 9 7 8 3 1 2 6 4
6 2 1 9 7 4 5 3 8
并且该控制台输出存储在一个名为 "myArray" 的数组变量中 我如何将其写入文本文件以使其看起来像那样(或用逗号分隔)
到目前为止我有这个:
File solutionFile = new File("output.txt");
FileOutputStream stream = new FileOutputStream(solutionFile);
PrintStream writeOut = new PrintStream(stream);
System.setOut(writeOut);
for (int rows = 0; rows < 9; rows++) {
for (int columns = 0; columns < 9; columns++) {
System.out.println(myArray[rows][columns] + " ");
}
}
写入文件时,每个数字都占一行。有什么可能的帮助吗?谢谢!
不要将打印语句设为 println
,只需设为 print
。
for (int rows = 0; rows < 9; rows++) {
for (int columns = 0; columns < 9; columns++) {
System.out.print(myArray[rows][columns] + " "); //keep printing on the same line
}
System.out.println(); //go to the next line
}
您可以做的另一件事是 I/O 重定向。如果您通过终端或命令提示符 运行 程序,您可以键入 java MyProgram > outputFile.txt
。 >
将控制台输出重定向到 outputFile.txt
而不是通常去的地方。
使用下面的代码(而不是 println,只使用 print 并在第二个 for 之后调用 println())
File solutionFile = new File("output.txt");
FileOutputStream stream = new FileOutputStream(solutionFile);
PrintStream writeOut = new PrintStream(stream);
System.setOut(writeOut);
for (int rows = 0; rows < 9; rows++) {
for (int columns = 0; columns < 9; columns++) {
System.out.print(myArray[rows][columns] + " ");
}
System.out.println();
}
我知道这可能不是您需要的,但只是为了让您了解其他方法,我把它放在这里。另一个答案正是您所需要的。
如果您使用命令行来执行您的 java 代码,您可以通过 运行 您的代码将 STDOUT 重定向到一个文件,如下所示:
java Main > output.txt
您还可以重定向标准输入:java Main < input.txt > output.txt
。
快速提问,我不知道我在这里遗漏了什么。如果我的控制台输出连续 9 个数字,总共 9 行,我将如何将准确的输出写入外部文本文件,使其在文本文件中看起来相同。
假设控制台如下所示:
2 4 5 1 9 3 6 8 7
9 7 6 2 5 8 4 1 3
1 8 3 7 4 6 9 2 5
8 5 2 3 1 9 7 4 6
3 1 9 4 6 7 8 5 2
7 6 4 5 8 2 3 9 1
4 3 8 6 2 5 1 7 9
5 9 7 8 3 1 2 6 4
6 2 1 9 7 4 5 3 8
并且该控制台输出存储在一个名为 "myArray" 的数组变量中 我如何将其写入文本文件以使其看起来像那样(或用逗号分隔)
到目前为止我有这个:
File solutionFile = new File("output.txt");
FileOutputStream stream = new FileOutputStream(solutionFile);
PrintStream writeOut = new PrintStream(stream);
System.setOut(writeOut);
for (int rows = 0; rows < 9; rows++) {
for (int columns = 0; columns < 9; columns++) {
System.out.println(myArray[rows][columns] + " ");
}
}
写入文件时,每个数字都占一行。有什么可能的帮助吗?谢谢!
不要将打印语句设为 println
,只需设为 print
。
for (int rows = 0; rows < 9; rows++) {
for (int columns = 0; columns < 9; columns++) {
System.out.print(myArray[rows][columns] + " "); //keep printing on the same line
}
System.out.println(); //go to the next line
}
您可以做的另一件事是 I/O 重定向。如果您通过终端或命令提示符 运行 程序,您可以键入 java MyProgram > outputFile.txt
。 >
将控制台输出重定向到 outputFile.txt
而不是通常去的地方。
使用下面的代码(而不是 println,只使用 print 并在第二个 for 之后调用 println())
File solutionFile = new File("output.txt");
FileOutputStream stream = new FileOutputStream(solutionFile);
PrintStream writeOut = new PrintStream(stream);
System.setOut(writeOut);
for (int rows = 0; rows < 9; rows++) {
for (int columns = 0; columns < 9; columns++) {
System.out.print(myArray[rows][columns] + " ");
}
System.out.println();
}
我知道这可能不是您需要的,但只是为了让您了解其他方法,我把它放在这里。另一个答案正是您所需要的。
如果您使用命令行来执行您的 java 代码,您可以通过 运行 您的代码将 STDOUT 重定向到一个文件,如下所示:
java Main > output.txt
您还可以重定向标准输入:java Main < input.txt > output.txt
。