2016-04-15 13 views
0

私のプログラムはパラメータでファイル名を取得しますが、もし私がそれを使いたいのであれば、私は完全なディレクトリパスが必要です、あるいは私はfilenotfoundexceptionを取得します。 例: 私のプログラムは、C:\ Users \ me \ documentsのパラメータでsample.txtを取得しました。Filenotfoundeception Javaがフルパスを必要とする

File file = new File(args[0]); 
FileReader fr = new FileReader(file); 

これは、filenotfoundexceptionをスローします。 ファイルを見つけるために何を使うべきですか? 私は非常に多くの類似の質問を見ましたが、私は解決策:( 私はgetResourcesとある、getPath何もを使用しようとしましたを見つけるdidntの。

+0

現在のディレクトリを取得し、必要に応じてパスに追加することができます。ただし、現在のディレクトリを盲目的に追加する前に、指定されたargs [0]が相対パスか絶対パスかを処理する必要もあります。 Java 8を使用している場合は、 'Path'オブジェクトも参照してください。 – KevinO

+0

'args [0]'を表示して、それが何であるかを見てみてください。あなたのファイルが存在するはずです。 – 3kings

+0

私はargs [0] .getAbsolutePathを出力していますが、そこにどこにも存在しないsample.txtという単純なgetPathが返されます。 – AsdFork

答えて

1

ファイルがソースコードと同じディレクトリに存在する場合は、ファイル名だけでファイルを開くことができます。ファイルが任意の場所にある場合は、ファイル名とそのファイル名の完全なパスを指定します。

例:c:\documents\sample.txt

また、ファイルシステムに存在するすべてのフォルダを再帰的に調べてファイルを見つけることもできます。しかし、これは非常に恐ろしい解決策になるでしょう。

0
File fileName = new File("myfile.txt"); 
     if(!fileName.exists()) { 
     fileName.createNewFile(); 
} 
FileOutputStream oFile = new FileOutputStream(fileName, false); 

あなたのファイルが場所にない場合は、このコードを追加し、これはあなたのために作成されます後者でfilenotfound例外が発生することはありません

+0

しかし、ファイルからのデータ。 – AsdFork

+0

src/file.txt - これはファイルパスの形式です。私が提供したコードでこのコードをコードに追加してください。 – Priyamal

+0

と同じように見えるかもしれないファイルを読む権限を持っていないかもしれません。プロジェクトフォルダ内でのみ検索し、他のフォルダでは検索しません。おそらく、私はファイルを見つけるために完全なパスを追加する必要があります。 – AsdFork

関連する問題