Java无法将输出流保存到文件中

时间:2013-05-28 19:44:40

标签: java stream output

此代码在计算机A上运行正常,但在计算机B上无效...我无法理解为什么...... 没有例外或其他任何东西......在计算机上创建了一个日志文件,在计算机B上没有创建日志文件。 计算机A和B具有相同的Java版本...... 你有什么想法?

    String str = "cmd /C  dir tools>1.log";
    try {
        Runtime.getRuntime().exec(str);
    } catch (Exception e) {
        e.printStackTrace();
    }

PS 此代码在两台计算机上都能正常运行

    String str = "cmd /C  dir tools";

2 个答案:

答案 0 :(得分:1)

您必须打开进程的输出流才能将输出正确保存到文件中。

您可以通过创建Process对象并将其保存到文件来执行此操作:

Process p = Runtime.getRuntime().exec(str);
InputStreamReader reader = p.getInputStream();
BufferedReader buffer = new BufferedReader(reader);
String line = null;
while ((line = buffer.readLine() != null) {
  //write stuff to file here
}

答案 1 :(得分:0)

继续SLaks所说的 - 使用内置文件API是你最好的选择。 这是一般教程的link

使用这些API可以解决从计算机A到B ...到C等任何奇怪的环境问题。