Java 关闭输出流';行为不端;?
在以下代码中:Java 关闭输出流';行为不端;?,java,Java,在以下代码中: for(int i = 5; i <= 100; i+=5) { linearSurprise(i); // Function calling 'System.out.print()' System.setOut(outStream); // Reassigns the "standard" output stream. System.out.println("Value of i: " + i); //
for(int i = 5; i <= 100; i+=5)
{
linearSurprise(i); // Function calling 'System.out.print()'
System.setOut(outStream); // Reassigns the "standard" output stream.
System.out.println("Value of i: " + i); // Outputting the value to the .txt file.
outStream.close(); // 'outStrem' is closed so that when I recall my function, output will
// will be sent to the console and not file.
// After debugging, I notice that nothing is being displayed to either the console or file,
// but everything else is still working fine.
}
for(int i=5;i您可以尝试outStream.flush()
而不是outStream.close()
内部循环。它可能会工作。因为outStream.close();
将关闭您的文件。最好在循环完成后关闭。您可以尝试outStream.flush()
而不是outStream.close()
内部循环。它可能会工作。超出流。关闭()
将关闭您的文件。最好在循环完成后关闭。您正在关闭循环中的OutputStream
,并且系统。out
现在已关闭;您必须重新为其分配一个打开的OutputStream
,以便能够写入更多的输出
为此,您确实应该直接写入文件输出流
;将System.out
重定向到它没有任何价值,这会导致类似这样的问题
PrintStream outStream = new PrintStream(File outputFile);
for(int i = 5; i <= 100; i += 5)
{
linearSurprise(i);
outStream.println("Value of i: " + i);
}
outStream.close();
PrintStream outStream=新的PrintStream(文件outputFile);
对于(int i=5;i您正在关闭循环中的OutputStream
,并且系统。out
现在已关闭;您必须重新为其分配一个打开的OutputStream
,以便能够写入更多的输出
为此,您确实应该直接写入文件输出流
;将System.out
重定向到它没有任何价值,这会导致类似这样的问题
PrintStream outStream = new PrintStream(File outputFile);
for(int i = 5; i <= 100; i += 5)
{
linearSurprise(i);
outStream.println("Value of i: " + i);
}
outStream.close();
PrintStream outStream=新的PrintStream(文件outputFile);
对于(int i=5;i因为调用CLose(),流被释放,因此不再存在因为调用CLose(),流被释放,因此不再存在在循环后关闭文件
outStream.close();
循环结束后关闭文件
outStream.close();
这种假设是无效的:
“OutREM”关闭,以便在我调用函数时发送输出
到控制台,而不是文件
为什么它会神奇地返回控制台?它只会被写入一个封闭的流,这将导致异常被PrintStream
吞没
如果要将其设置回原始控制台流,则需要明确执行以下操作:
PrintStream originalOutput = System.out;
// Do stuff...
System.setOut(originalOutput); // Now we can write back to the console again
这种假设是无效的:
“OutREM”关闭,以便在我调用函数时发送输出
到控制台,而不是文件
为什么它会神奇地返回控制台?它只会被写入一个封闭的流,这将导致异常被PrintStream
吞没
如果要将其设置回原始控制台流,则需要明确执行以下操作:
PrintStream originalOutput = System.out;
// Do stuff...
System.setOut(originalOutput); // Now we can write back to the console again
System.setOut(扩展);//重新分配“标准”输出流。
for(int i=5;iSystem.setOut(outStream);//重新分配“标准”输出流。
对于(int i=5;i打印到文件,如下所示:
outStream.println("What ever you want");
然后关闭循环后的流
不要放线(超流);打印到文件,如下所示:
outStream.println("What ever you want");
然后关闭循环后的流
不要出发(向外扩张)为什么要写入System.out?为什么不直接写入文件?包含更多代码,这样我们就可以看到全局。为什么要写入System.out?为什么不直接写入文件?包含更多代码,这样我们就可以看到全局。我正试图在输出到txt文件和控制台之间切换,这就是为什么在循环中…我尝试在输出到txt文件和控制台之间切换,这就是为什么它在循环中…我尝试在输出到txt文件和控制台之间切换,这就是为什么它在循环中…一旦你关闭流,你需要创建一个新的可以写入它。我尝试在输出到txt文件和控制台之间切换txt文件和控制台,这就是为什么它在循环中…一旦你关闭了流,你需要创建一个新的可以写入它。