Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java can';t将输出流保存到文件_Java_Stream_Output - Fatal编程技术网

Java can';t将输出流保存到文件

Java can';t将输出流保存到文件,java,stream,output,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.printStackTr

此代码在计算机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";
按照SLaks的说法——最好使用内置的文件API。 下面是一个通用教程的示例


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

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

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

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
}

您应该使用Java的内置文件API。您是否检查了permissionstry以输出由string指定的命令,但仍然/KI了解此方法,它工作正常,但我不理解为什么我的方法不工作我相信这在之前已经讨论过,但我找不到这篇文章。请看这里:第4.6节应该解释我知道的,但我不明白为什么我的方法不起作用。。。你能解释一下我的情况有什么问题吗