好的,在有人问我“ 哑巴” 问题之前,请注意,我已经穷尽了 我的所有其他选择知道 ,然后空手而归。仍然,如果您愿意,请继续投票并举报该问题。
现在,对于那些护理
的人我正在尝试从用户那里输入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版本和不同的机器上进行了尝试。仍然得到空白文本文件。
请告诉我,我做错了什么事。
答案 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");
}
}