如何在java中创建输出文件?

时间:2015-04-09 17:46:04

标签: java file console output

我在java安装程序中拥有所有代码,但是如何复制控制台的输出并将其转到output.txt文件?我在顶部有这个代码:

    Scanner console = new Scanner(System.in);
    System.out.print("Enter Input file name: ");
    String inputFileName = console.next();
    System.out.print("Output file: ");
    String outputFileName = console.next();
    File inputFile = new File(inputFileName);
    Scanner in = new Scanner(inputFile);
    PrintWriter out = new PrintWriter(outputFileName);

它提示我输入输入文件(input.txt)和输出文件(output.txt)。当我输入所有信息时,它会创建一个输出文件,但不会写入任何内容。我需要将控制台输出写入文件中。

2 个答案:

答案 0 :(得分:3)

好像你可能遇到了线程问题。您可能需要在新线程中运行以下命令(如图所示)

class myRunner implements Runnable {
  public void run() {
    while (true) {
      String ln = in.nextLine();
      out.println(ln);
    }
  }
}
new Thread(new myRunner()).start();

答案 1 :(得分:2)

尝试这样的事情,你可以输出到控制台和输出文件,你不是真的“复制”。

System.out.println("whatever console output");

if (Files.notExists(outputFileName)) {
    try {
        File file = new File("output.txt");
            try (BufferedWriter output = new BufferedWriter(new FileWriter(file))) {
                output.write("console output, blah blah");
                output.newLine();                    
                output.close();
            }     
    } catch ( IOException e ) {}

您可以将控制台输出存储为数组列表,并将其迭代到该输出文件

for(i = 0, i < ArrayList.length, i++) {
    output.write(i);
    output.newLine();
}
output.close();