我无法操作 filewriter class 创建的文件的名称
I can't manipulate name of the file that filewriter class creates
我正在开发一个简单的程序,它从用户那里获取输入,然后用特定的文件名保存它。
更准确地说:
public static Scanner in = new Scanner(System.in);
public static boolean quit = false;
public static String name;
public static FileWriter fw;
public static void main(String[] args) throws IOException {
System.out.print("File name: ");
name = in.nextLine();
fw = new FileWriter(name + ".txt", false);
System.out.println("Continue typing/type save to quit");
while(!quit) {
String word = in.nextLine();
if(word.equals("save")) {
fw.close();
quit = true;
}
else {
fw.write(word + "\n");
}
}
- 程序要求输入文件名。
- 用户一直在输入单词,直到他输入 "save" 保存文件
如您所见,程序在用户开始键入之前会在开始时询问用户文件名。这是我的问题。我希望我的程序在用户输入所有单词后最后询问用户文件名。不幸的是我不能这样做,因为 filewriter class 在创建新对象时创建文件并且以后不能更改名称。
我想知道我的问题是否有解决方案,或者我应该寻找什么样的信息。
您有两个选择:
- 将所有用户输入存储在内存中(例如在
List<String>
中),然后在看到 save
关键字并从用户那里获取输出文件名后写出单词。
- 像你一样打开输出文件,但使用一个临时名称,并在阅读时写下单词。看到
save
关键字后,关闭文件,获取用户选择的文件名,然后将临时文件重命名为用户选择的名称。
除非您需要处理数百万个单词,否则为了简单起见,我会选择选项 1。
我正在开发一个简单的程序,它从用户那里获取输入,然后用特定的文件名保存它。
更准确地说:
public static Scanner in = new Scanner(System.in);
public static boolean quit = false;
public static String name;
public static FileWriter fw;
public static void main(String[] args) throws IOException {
System.out.print("File name: ");
name = in.nextLine();
fw = new FileWriter(name + ".txt", false);
System.out.println("Continue typing/type save to quit");
while(!quit) {
String word = in.nextLine();
if(word.equals("save")) {
fw.close();
quit = true;
}
else {
fw.write(word + "\n");
}
}
- 程序要求输入文件名。
- 用户一直在输入单词,直到他输入 "save" 保存文件
如您所见,程序在用户开始键入之前会在开始时询问用户文件名。这是我的问题。我希望我的程序在用户输入所有单词后最后询问用户文件名。不幸的是我不能这样做,因为 filewriter class 在创建新对象时创建文件并且以后不能更改名称。
我想知道我的问题是否有解决方案,或者我应该寻找什么样的信息。
您有两个选择:
- 将所有用户输入存储在内存中(例如在
List<String>
中),然后在看到save
关键字并从用户那里获取输出文件名后写出单词。 - 像你一样打开输出文件,但使用一个临时名称,并在阅读时写下单词。看到
save
关键字后,关闭文件,获取用户选择的文件名,然后将临时文件重命名为用户选择的名称。
除非您需要处理数百万个单词,否则为了简单起见,我会选择选项 1。