使用Java调用Linuxterminal:如何刷新输出?【JAVA教程】

!
也想出现在这里? 联系我们
信息

使用Java调用Linuxterminal:如何刷新输出?,第1张

概述使用Java调用Linuxterminal:如何刷新输出

1)我使用Java调用linuxterminal运行foo.exe并将输出保存在一个文件中:

String[] cmd = {\”/bin/sh\”,\”-c\”,\”foo >haha.file\”}; Runtime.getRuntime().exec(cmd);

2)问题是当我打算在代码中稍后阅读haha.file时,它还没有被写入:

file f=new file(\”haha.file\”); // return true in = new BufferedReader(new fileReader(\”haha.file\”)); reader=in.readline(); System.out.println(reader);//return null

3)只有在程序完成后,才会写入haha.file。 我只知道如何冲洗“作家”,但不知道如何冲洗。 喜欢这个。 我怎样才能强制Java在terminal写入文件?

在此先感谢EE

有没有办法检查最近处理器caching是否被刷新?

在linux上closures()套接字的正确方法,linux和windows之间的区别?

刷新cpucaching而不调用caching?

有没有办法build立一个linuxpipe道非缓冲或线路缓冲?

如何在原始套接字中丢弃传入数据包?

即使在Nginx中也可以使用PHP Flush

愚弄一个windows程序,相信它正在运行输出未redirect

如何在win32上刷新stdlib输出文件?

如何从C程序在linux中刷新cpucaching?

如何刷新pipe道清理C中的缓冲区。 当两个pipe道是同一进程的一部分时

此问题是由Runtime.exec的异步性质造成的。 foo正在执行一个独立的过程。 您需要调用Process.waitFor()以确保文件已经写入。

String[] cmd = {\”/bin/sh\”,\”foo >haha.file\”}; Process process = Runtime.getRuntime().exec(cmd); // …. if (process.waitFor() == 0) { file f=new file(\”haha.file\”); in = new BufferedReader(new fileReader(\”haha.file\”)); reader=in.readline(); System.out.println(reader); } else { //process dID not terminate normally }

您可以等待完成该过程:

Process p = Runtime.getRuntime().exec(cmd); int result = p.waitFor();

或者使用p.getinputStream()直接从进程的标准输出读取。

总结

以上是内存溢出为你收集整理的使用Java调用Linuxterminal:如何刷新输出?全部内容,希望文章能够帮你解决使用Java调用Linuxterminal:如何刷新输出?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞174 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容