Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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 如何获取控制台输出(例如在eclipse上)并将相同的输出写入/复制到文件?_Java_File Io_System_Nio_Printstream - Fatal编程技术网

Java 如何获取控制台输出(例如在eclipse上)并将相同的输出写入/复制到文件?

Java 如何获取控制台输出(例如在eclipse上)并将相同的输出写入/复制到文件?,java,file-io,system,nio,printstream,Java,File Io,System,Nio,Printstream,我知道这类问题已经被问过很多次了。但我没有为自己找到任何答案。这就是为什么我要再问一次 我的控制台上有一个输出。我想将相同的输出1对1复制到一个文件中。我不想改变方向。我想要某种“复制”它并“写入”到文件中。 我希望这个问题足够清楚,因为我以前看到过,这个问题不清楚 不管怎样,我已经用“系统出发”的方法试过了。但它只是将所有内容重定向到文件。 我不能用write()将所有的“System.out.println”写入一个文件,太多了 谢谢您的帮助。您无法获得控制台输出。在打印之前,你必须做所有的

我知道这类问题已经被问过很多次了。但我没有为自己找到任何答案。这就是为什么我要再问一次

我的控制台上有一个输出。我想将相同的输出1对1复制到一个文件中。我不想改变方向。我想要某种“复制”它并“写入”到文件中。 我希望这个问题足够清楚,因为我以前看到过,这个问题不清楚

不管怎样,我已经用“系统出发”的方法试过了。但它只是将所有内容重定向到文件。 我不能用write()将所有的“System.out.println”写入一个文件,太多了


谢谢您的帮助。

您无法获得控制台输出。在打印之前,你必须做所有的事情

要将数据写入文件,请执行以下操作

try{

FileWriter x = new FileWriter(new File("x.txt"));
x.write("hello");

}catch(IOExecption e){

}

这将向一个文件写入hello(你好)

您可以这样做,系统将在登录到文件后退出。 此代码将附加。请注意,这不是一个很好的异常处理示例,只是一个您可以做的示例

  protected void writeToFileAndLog(String logEntry)
  {
    String file = "MyAmazingLog.txt";
    try
    {

      FileOutputStream appendedFile = new FileOutputStream(file, true);
      DataOutputStream out = new DataOutputStream(appendedFile);

      out.writeBytes(String.format("%s\n", logEntry));
      out.flush();
      out.close();
      System.out.println(logEntry);
    }
    catch (FileNotFoundException e)
    {
      e.printStackTrace();
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }

不要使用系统输出,只需写入文件即可。。这可能会满足您的需求Thanx@肯尼斯:我早就发现了。但这里的问题是,它只是通过while和for循环,并在文件中写入最后的输出。我想它只是写得太多了,但我怎么能做到呢?我得到了这个:FileOutputStream myFile=newfileoutputstream(task.getResultFile());PrintStream输出=新的PrintStream(in);然后每次调用System.out.println()时,我也会调用output.println()。但问题是,正如我对Kenneth所说的,它会覆盖文件中的所有其他行并打印,只打印最后一个短语,因为我正在使用while和for循环。您需要在FileWriter上调用
flush()
方法,将缓冲区的内容写入目标文件。