4

クラスローダーを使用してファイルを開きたい。ただし、常にFileNotFoundExceptionが発生します。URLを使用して新しいファイルを作成するにはどうすればよいですか?ファイルのようにストリームとして開きたくありません。

URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...
4

2 に答える 2

3

file://...URLをに変換するには、とjava.io.Fileを組み合わせて安全なソリューションを実現する必要があります。url.getPath()url.toURI()

File f;
try {
    f = new File(url.toURI());
} catch(URISyntaxException e) {
    f = new File(url.getPath());
}

このブログ投稿の完全な説明。

于 2010-04-26T23:33:04.437 に答える
0

私はただ考えています: foo が jar に入っている場合はどうなりますか? 次に、ファイルを作成できませんでした。

foo が実際に (ローカル) クラスパス ディレクトリにある場合は、動作させることができるはずですが、ご存知のように、誰かが jar にパッケージ化したり、ネットワーク経由でロードしたりすると失敗します...

于 2010-04-26T23:49:16.977 に答える