Java,将控制台内容写入文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java,将控制台内容写入文件相关的知识,希望对你有一定的参考价值。

我正在测试,尝试将控制台内容写入文件,但是当我运行应用程序时,生成的文本文件为空。我希望用户在用户输入完详细信息后输入一些详细信息。我希望用户输入文件名以将控制台内容写入。但是,生成的文件为空。

public void test() {
    boolean check=true;
    int i=0;
    for (i=0;i<5;i++) {
        System.out.println("Enter your name");
        String name=Keyboard.readInput();
        System.out.println("Name:"+ name);
        System.out.println("Enter your age");
        int age=Integer.parseInt(Keyboard.readInput());
        System.out.println("Age:"+age);
    }

    out.println("enter 1 to save to file");
    int num=Integer.parseInt(Keyboard.readInput());
    if (num == 1) {
        out.println("Enter the file name to write to:
");
        String filename = Keyboard.readInput();
        File myfile = new File(filename);

        try {
                PrintStream out = new PrintStream(new FileOutputStream(myfile));
                System.setOut(out);
        } catch (IOException e) {
            out.println("Error:" + e.getMessage());
        }
    }
}
答案

您只创建文件而不在文件上写任何文件为空的原因。创建文件后,您必须通过PrintStream.println()方法在文件上写一些内容。

try {
    PrintStream out = new PrintStream(new FileOutputStream(myfile));
    out.println("some text"); // it will write on File

    // OR if you setOut(PrintSrtream) then
    System.setOut(out);
    System.out.println("some text");// this will also write on file
} catch (IOException e) {
    out.println("Error:" + e.getMessage());
}
另一答案

Java 8+

static void writeFile(String path, String...lines) throws IOException {
    Files.write(
        Paths.get(path), 
        Arrays.asList(lines));
}

以上是关于Java,将控制台内容写入文件的主要内容,如果未能解决你的问题,请参考以下文章

java代码 如何向TXT文件写入内容?

如何将treeview的内容写入文本文件

java读取、修改、写入txt文件

使用java如何直接往word文件中写入内容最好有详细的介绍和源代码

java将画面中输入的内容,写入到指定的Excel文件的指定的行列中(具体实例)

java 将页面内容写入excel文件中并可以将其下载到本地任意位置