1

現在、Guava API の助けを借りて次のコードを使用して、クラスパスからプロパティ ファイルをロードしていました。

final URL fileURL = Resources.getResource("res.properties");
final File file = new File(fileURL.getFile());

Java7SE で導入された新しい NIO2 API を試し、Guava API 呼び出しを削除することにしたので、コードを次のように変換しました。

final URL fileURL = getClass().getResource("/res.properties");
final Path path = Paths.get(fileURL.toURI());

URLしかし、変更されたコードは、との間で変換が発生する行でチェック例外をスローしますURI。私はそれを取り除くことができる方法はありますか?Pathたとえば、指定されたインスタンスを取得できますURLか?

PS私は、変更されたコードが元のものと意味的に同じではないことを認識しています-リソースが見つからない場合はグアバのgetResourceスロー、この場合はJavaのリターン。IllegalArgumentExceptiongetResourcenull

4

2 に答える 2

1

あなたが使用することができます:

final File file = new File(fileURL.getFile());
final Path path = file.toPath(); //can throw an unchecked exception
于 2013-08-28T11:21:10.073 に答える
0

これが私が見つけたものです:

final URL fileURL = getClass().getResource("/res.properties");
final URI fileURI = URI.create(fileURL.toString());
final Path path = Paths.get(fileURI);
于 2013-08-29T11:52:12.493 に答える