web-dev-qa-db-ja.com

ユーザー入力ファイルコンソール/コマンドライン-Java

Javaにファイルを入力するためのWeb上のほとんどの例は、固定パスを参照しています。

File file = new File("myfile.txt");

コンソールからのユーザー入力ファイルはどうですか?ユーザーにファイルを入力してもらいたいとしましょう。

System.out.println("Enter a file to read: ");

処理のためにユーザー指定のファイルを読み込むために(できるだけ少ないコードを使用して)どのようなオプションがありますか。ファイルを取得したら、文字列などに変換できます... BufferedReader、Scanner、FileInputStream、DataInputStreamなどに関係していると思います...これらを組み合わせて使用​​する方法がわかりません。最も効率的な方法を取得します。

私は初心者なので、簡単なことを見逃しているかもしれません。しかし、私はしばらくの間これをいじっていましたが、役に立ちませんでした。

前もって感謝します。

12
nicorellius

ユーザーにファイル名を入力させるには、いくつかの可能性があります。

コマンドライン引数として。

public static void main(String[] args) {
  if (0 < args.length) {
    String filename = args[0];
    File file = new File(filename);
  }
}

ユーザーに入力を求めることにより:

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a file name: ");
System.out.flush();
String filename = scanner.nextLine();
File file = new File(filename);
20
Roland Illig

Java.io.BufferedReaderを使用する

String readLine = "";
try {
      BufferedReader br = new BufferedReader(new FileReader( <the filename> ));
      while ((readLine = br.readLine()) != null) { 
        System.out.println(readLine);
      } // end while 
    } // end try
    catch (IOException e) {
      System.err.println("Error Happened: " + e);
    }

そして、whileループをデータ処理で埋めます。

よろしく、ステファン

0
Snicolas