首页 / JAVA / java – 写入控制台和文本文件
java – 写入控制台和文本文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 写入控制台和文本文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1726字,纯文字阅读大概需要3分钟。
内容图文
我从互联网上找到了下面的代码,但它不会将打印的控制台写入omt.txt,它只会在第二个catch块之后写入System.out.println语句.如果你运行代码,你会明白什么我的意思是.我想要的是将控制台上的内容写入“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");
}
}
}
解决方法:
在得知OP想要复制流之后更新了答案
由于您要在两个流中写入数据,请尝试使用TeeOutputStream中的TeeOutputStream.在第二次尝试更改您的代码
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的结果也将放在您的文件中.
内容总结
以上是互联网集市为您收集整理的java – 写入控制台和文本文件全部内容,希望文章能够帮你解决java – 写入控制台和文本文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。