リソースとしてプロジェクトに添付ファイルセットがあります。これらのファイルには、プログラムが読み取りおよび処理するデータが含まれています。名前空間にスペースとキリル記号を含むリソースファイルを読み込みます。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream inputStream = classLoader.getResourceAsStream(filename);
packageParameters = IOUtils.toString(inputStream, "UTF-8");
inputStream.close();
を私は次のように特定の名前のファイルを読み込もうまで、すべてが正常です:: それは私がそれを行う方法です、それはこのリソースを見つけることができないことを意味
\sets\Тех. тип = 0 Сет. = 1 Комплект 1.qr
getResourceAsStream
戻りnull
。
質問:キリル文字、スペース、特殊記号が名前に含まれているようなファイルを読むにはどうすればいいですか? 名前をエンコードしようとしましたが、それは役に立ちません。コンストラクタが不正なシンボルの例外をスローするときにURIに変換できません。
感謝しています。 同じような答えを分析するのに数日間を費やしましたが、それを解決する方法はまだ分かりません。
ニコライの質問を更新していただきありがとうございます。 –
ファイルの命名を制御できますか? – injecteer
いいえ、ファイル名の生成方法には何の影響もありません。私もそれらの名前を変更することを考えました。しかし、プログラム内でそれらの名前を変更するには、それらをリソースとして見つける必要があります。それはまさに私がやろうとしていることです。 –