私のラップトップでは奇妙な問題が発生しています。ファイル名にコロンが含まれているリソースを開くことができません
ノート: OSX バージョン:10.11.6 - エルキャピタン
のJava: Javaのバージョン "1.8.0_91" のJava(TM)SEランタイム環境(1.8.0_91-B14を構築) Java HotSpot(TM)64ビットサーバーVM(ビルド25.91-b14、混合モード)
ClassLoader#getResource
を使用して、app-2016-08-13T22:55:00Z.1.log.gz
という形式のファイルを開くことを試みています。
/src/main/test/resourcesのファイルを配置しましたが、いつもnull
に戻っています。
ファイル名をコロンなしの名前に変更すると、コードが機能します。 何が起こっているのですか?
@Test
public void testColonFile() throws Exception {
String resourceFilename = "app-2016-08-13T22:55:00Z.1.log.gz";
InputStream is = TestClass.class.getClassLoader().getResourceAsStream(resourceFilename);
//InputStream is null here!
}
'toURI()'を削除することをお勧めします。 –
HFS +とコロンについては多くの議論があります。 ':'はファイルパスの区切り文字として使われました。だから、ファイル名に ':'を使わないでください。 **システムは指定されたファイルを見つけることができません** 参考:ファイルシステムとファイルシステムを比較した[wikipage](https://en.wikipedia.org/wiki/Filename#Comparison_of_filename_limitations)彼らの限界。 – maxkoryukov
コードが無効です。リソースはファイルではありません。それらは、ファイルシステムではなく、JARまたはWARファイルに入れることができます。 URIを直接使うか、 'getResourceAsStream()'を使うべきです。 – EJP