【问题标题】:I can't manipulate name of the file that filewriter class creates我无法操作 filewriter 类创建的文件的名称
【发布时间】:2017-06-07 11:57:26
【问题描述】:

我正在开发一个简单的程序,它接受用户的输入,然后用特定的文件名保存它。

更准确地说:

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");
        }

    }
  1. 程序要求提供文件名。
  2. 用户正在输入单词,直到他输入“保存”来保存文件

如您所见,程序在用户开始输入之前会询问用户文件名。这是我的问题。我希望我的程序在用户输入所有单词后在最后询问用户的文件名。不幸的是,我不能这样做,因为 filewriter 类会在创建新对象时创建文件,并且以后无法更改名称。

我想知道我的问题是否有任何解决方案,或者我应该寻找什么样的信息。

【问题讨论】:

    标签: java io filewriter


    【解决方案1】:

    你有两个选择:

    1. 将所有用户输入存储在内存中(例如在List<String> 中),然后在看到save 关键字并从用户那里获取输出文件名后写出单词。
    2. 按照您的操作打开输出文件,但使用一个临时名称,并在阅读时写下这些单词。看到save 关键字后,关闭文件,获取用户选择的文件名,然后将临时文件重命名为用户的选择。

    除非您需要处理数百万个单词,否则我会选择选项 1,因为它很简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 2018-10-22
      相关资源
      最近更新 更多