2016-09-19 3 views
0

try-catchブロック内のコマンドライン引数としてテキストファイル(入出力ファイル)を渡そうとしています。Javaのコマンドライン引数としてファイルをチェック

これは、コードのスニペットです:

try { 
    PrintWriter outFile = new PrintWriter(new FileOutputStream(args[0])); 
} catch (FileNotFoundException exc) { 
    System.out.println("file does not exist"); 
} catch (Exception e) { 
    System.out.println("general exception"); 
} 

私は存在しないファイルを渡すことによって、それを確認しようとしているが、動作していないようではなく、さらに一般例外で。私もprintStreamを試しましたが、実際には何も変わりませんでした。

ありがとうございます、ありがとうございます!

+0

(https://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html#を表す場合cuzの私たちは、さらに行きたいですFileOutputStream(java.io.File))、 'FileNotFoundException - ファイルが存在するが、通常のファイルではなくディレクトリである場合、存在しないが作成できない、または他の理由で開くことができない場合.'おそらく、 _CAN_で渡すことができますので、あなたのためにそれを作成しています。ディレクトリーを読み取り専用にして、それがまだ機能するかどうかを確認してください。 – Orin

答えて

1

まず

File inputFile = new File(args[0]); 

今すぐファイルが存在するかfalse場合ではない

プラスあなたもしたいプットをした場合、あなたにboolean結果trueを与えるinputFile.exists()を使用してファイルの存在を確認したテキストからファイルを作成しますinputFile.exists()も入力パスがディレクトリ(フォルダ)の場合trueを返すので、ディレクトリのチェック

あなたの小切手は次のようになります

if(inputFile.exists() && ! inputFile.isDirectory()) // ! mean not/complement operator 
{ 
    // yes it's a file 
} 

なぜ補完がありますか?入力ファイル[たFileOutputStreamのJavaDoc]によるとないディレクトリ

関連する問題