JavaのFile
およびURL
クラスを使用して現在の作業ディレクトリ以外のファイルを読み込もうとしています。私は現在の作業ディレクトリがデフォルトで.
によって '表現されている'ことを知っています。私のJavaクラスを想定し現在の作業ディレクトリ以外のファイルの絶対パスを取得する方法[Java]
は、私が/folders/Desktop/file1.txt
でファイルfile1.txt
を読みたい場合は、私は次の操作を行うことができ、/folders/Desktop/MyClass.java
下にある:
URL url = getClass().getResource("./file1.txt"); /* or "./anotherFolder/../file1.txt", or simply "file1.txt"*/
File f = new File(url.getPath());
とすべてが期待どおりに動作します。
しかし、現在の作業ディレクトリ内になく、サブディレクトリ内にないファイルを読み込むにはどうすればよいですか?たとえば、ファイルのパスが/folders/file1.txt
の場合は?私はどこでも検索しましたが、何も見つかりませんでした。私は../file1.txt
、./../file1.txt
などを試しましたが、何も動作しません。たぶん私は何かを見逃していた、または私は適切な場所で検索していない可能性があります。
新しいFIle( "/ folders/file1.txt")の何が問題になっていますか? – Turo
その命令に間違いはありません、それは私のケースで動作します。問題は、現在の作業ディレクトリのサブディレクトリにないファイルを読みたいときに発生します。特に、Fileクラスのインスタンスを作成しようとするとjava.lang.NullPointerExceptionがスローされます。 – Process0
私は、単に新しいファイル(ファイル名)、リソースを使用しないことを意味します。このファイルは、パスが正しい限りどこでもかまいません。ファイル名がヌルでない場合、どのようにNPEを投げることができますか? – Turo