2017-01-23 3 views
2

ユーザーからの入力を受け取り、特定のファイル名で保存する単純なプログラムを作成しています。ファイルライタークラスが作成するファイルの名前を操作できません

より正確には:

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. 彼のタイプは、あなたは彼が入力を開始する前のプログラムは、最初にファイル名をユーザーに尋ねる見ることができるようにファイル

を保存する「保存」するまで、ユーザーは、単語を入力しています。これは私の問題です。私は、すべての単語をタイプした後、私のプログラムが最後にファイル名をユーザに尋ねるようにしたい。残念ながら、ファイルライタークラスは新しいオブジェクトが作成されたときにファイルを作成し、後で名前を変更することができないため、これを行うことはできません。

私は、私の問題の解決策があるか、どのような情報を探すべきかを知りたいと思います。

答えて

1

あなたは2つのオプションがあります。

  1. ストア(例えばList<String>で)メモリ内のすべてのユーザー入力をしてからsaveキーワードを見て、ユーザからの出力ファイル名を取得した後の単語を書き出します。
  2. 出力ファイルを一時的な名前で開きます。読み込んだときに出力します。 saveキーワードを確認したら、ファイルを閉じて、ユーザーが選択したファイル名を取得してから、一時ファイルの名前をユーザーの選択に変更します。

何百万という単語を処理する必要がない限り、簡単にするためにオプション1を使用します。

+1

ありがとうございました!最初のオプションは私の問題を解決した – sviero

関連する問題