将字符串输入存储在文件中

时间:2018-07-18 08:19:04

标签: java filewriter bufferedwriter

好的,在有人问我哑巴问题之前,请注意,我已经穷尽了 我的所有其他选择知道 ,然后空手而归。仍然,如果您愿意,请继续投票并举报该问题。

现在,对于那些护理

的人

我正在尝试从用户那里输入String,并将其存储到文件 Text.txt 中,该文件将在当前工作目录中创建。

  

以下是代码

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;


public class Encryption {

    public static void main(String[] args) throws Exception {

        System.out.println("Enter a String you wish to encrypt : ");
        new BufferedWriter(new FileWriter(".\\Text.txt")).write(new Scanner(System.in).nextLine());
        System.out.println("Done");
    }
}

我的问题是,文件是在正确的目标位置生成的,但始终为空。我已经在多个JDK版本和不同的机器上进行了尝试。仍然得到空白文本文件。

请告诉我,我做错了什么事。

2 个答案:

答案 0 :(得分:4)

您没有使用.close()的BufferedWriter关闭(然后将刷新最后一个缓冲区并关闭文件)。

不过,您可以使用新样式执行该任务:

    Files.write(Paths.get(".\\Text.txt"),
                Arrays.asList(new Scanner(System.in).nextLine()),
                Charset.defaultCharset());

否则,您将需要引入一个变量,而不再是单行代码了。

答案 1 :(得分:1)

一些更改使我的代码生效

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;


public class Encryption {

    public static void main(String[] args) throws Exception {

        System.out.println("Enter a String you wish to encrypt : ");
        String text = new Scanner(System.in).nextLine();
        BufferedWriter b = new BufferedWriter(new FileWriter(".\\Text.txt"));
        b.write(text);
        b.close();
        System.out.println("Done");
    }
}