我从互联网上找到了下面的代码,可以正常工作,但是它没有将打印控制台写入omt.txt,它仅System.out.println
在第二个catch块之后写入语句。如果您运行该代码,则将理解我的意思。要做的就是将控制台上的所有内容写入“
omt.txt”文件中。
经过一番回答后,我发现我的问题不清楚,对此感到抱歉。我想将控制台输出保存到omt.txt文本文件。如果在控制台上打印了“ Hello
123”,它也应该在omt.txt文件中。换句话说,在控制台上打印的任何内容都应同时写在om.txt文件中,或者可以在控制台执行后写入,但应1对1一样!
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Wrt_file {
public static void main(String[] args) {
System.out.println("THIS is what I see on the console. but not on TEXT file");
File f = new File("omt.txt");
if(!f.exists())
{
try {
f.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
FileOutputStream fos = new FileOutputStream(f);
PrintStream ps = new PrintStream(fos);
System.setOut(ps);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("THIS is what I see on the text file, but not on CONSOLE");
for (int i=0; i<10; i++){
System.out.println("Testing");
}
}
}
由于要在两个流中写入数据,请尝试TeeOutputStream
从Apache
Commons使用
。再次尝试更改代码
try {
FileOutputStream fos = new FileOutputStream(f);
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
try {
fos.flush();
}
catch (Throwable t) {
// Ignore
}
}, "Shutdown hook Thread flushing " + f));
//we will want to print in standard "System.out" and in "file"
TeeOutputStream myOut=new TeeOutputStream(System.out, fos);
PrintStream ps = new PrintStream(myOut, true); //true - auto-flush after println
System.setOut(ps);
} catch (Exception e) {
e.printStackTrace();
}
现在,来自的结果System.out
也将放入您的文件中。
问题内容: 我已尝试使用此代码建议(http://www.daniweb.com/forums/thread23883.html#)将控制台输出写入txt文件,但未成功。怎么了? 问题答案: 你需要执行以下操作: 第二句话是关键。它将假定的“最终” 属性的值更改为提供的值。 可以使用类似的方法(和)来更改标准输入和错误流。有关详细信息,请参考。 上面的一个更通用的版本是这样的: 如果为is ,则流
问题内容: 目前,我正拼命尝试将从控制台读取的德语变音符号写入Windows 7上的utf8编码的文本文件中。 这是设置扫描仪的代码: 这是读取字符串的代码: 这是写入文件的代码: 不幸的是,这样编写的文件不是使用示例“überraschung”,而是以utf8编码,但不会显示变音符号。该怎么办? 问题答案: 您的控制台可能不是UTF-8,因此当您创建的扫描器编码错误时,当您尝试从控制台读取行时,
问题内容: 在阅读有关Java I / O的知识时,我意识到可以通过两种方式写入标准输出。 以下是同时使用这两种技术的代码段 相对于其他使用,是否有任何性能优势? 问题答案: 一个快速的Google透露了Coderanch上的一个线程很有用。 还有其他几种进行控制台编写的方法,但是除了编写更少的代码外,使用一种或另一种似乎没有真正的好处,而且创建新的PrintWriter对象最终会占用更多的内存。
本文向大家介绍python 通过logging写入日志到文件和控制台的实例,包括了python 通过logging写入日志到文件和控制台的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 关于formatter的配置,采用的是%(<dict key>)s的形式,就是字典的关键字替换。提供的关键字包括: Format Description %(name)s Name of the logg
我想将python的输出打印到控制台和一个包含错误(如果有的话)的文本文件。 到目前为止,我的尝试是: 注意:生成可执行文件hello的代码 相关链接: 如何使用python将“print”输出重定向到文件? http://linux.byexample.com/archives/349/how-to-redirect-output-to-a-file-as-well-as-display-it-
问题内容: 此代码是否同时写入日志文件和控制台? 问题答案: 不,它不会同时写入两者。只会写入控制台。关于原始代码的简短说明。我想您在某处定义,但是代码仍然不正确。您需要在语句中使用引号,例如: 因为我认为您是要附加到文件中。否则,您的代码将抛出一个因为未定义的变量。 但是,正如其他人所说,您应该强烈考虑使用日志记录模块。这是一个如何同时写入控制台和日志文件的简单示例。该代码部分源自此处和此处: