2016-05-24 6 views
0

コマンドラインからプログラムに渡されるファイルを読み込む際に問題が発生しました。ですから、私のプログラムはprintFileです。私が持っている、私のメインでコマンドラインで渡されたファイル名からファイルを取得する(String [] args)

java printFile text1.txt 

try{ 
Scanner scan=new Scanner(args[0]); 
    while(scan.hasNextLine()) 
    { 
    System.out.println(scan.nextLine()); 
    } 
} 
catch(IOException e) 
{ 
e.printStackTrace(); 
} 

がどのように正しくファイルがコマンドライン経由で渡されることができ、私は次の操作を行いますか?

+1

あなたは '引数[0]'を経由してファイル名を取得します。しかし、「Scanner」の内容について[Javadoc](https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.lang.String))を読む必要があります。コンストラクタは:それは文字列自体をトークン化します。それはファイル名として扱われません。 –

+0

args [0]にあるファイルの中のテキストを読み込むにはどうしたらいいですか?で、どのように私はちょうどargs [0]からファイルパスを得るだろうか?しかし、私はあなたが言っているものを見ます。 – Tom

+1

あなたは 'FileInputStream'を作成するようなことをします。 –

答えて

1

Scanner(String)は、指定された文字列からスキャナを作成します。しかし、ファイルの内容をスキャンしたいので、Scanner(File)コンストラクタを使いたいとします。このことから

変更:これに

Scanner scan=new Scanner(args[0]); 

Scanner scan = new Scanner(new File(args[0])); 
+0

args [0]はファイルではなく文字列なので、同じ名前の新しいファイルを作成するだけではありませんか?ファイルのparamを読んでいないのですか? – Tom

+0

'File(String)'は、Javaの 'File'インスタンスを作成します。それは新しいファイルを作成するのと同じではありません。ファイルシステムに新しいファイルを作成しません。どういたしまして。指定されたパスのファイルシステムにファイルの表現を作成します。 – janos

+0

@Tomは今は十分クリアですか? – janos

関連する問題