getResourceAsStream()
からInputStream
を取得し、返されたInputStream
をBufferedReader
に渡すことでファイルから読み取ることができました。
ファイルに書き込む方法はありますか?
直接ではありませんが、no --getResourceAsStream()
は読み取り専用リソースのビューを返すことを目的としています。
ただし、リソースが書き込み可能なファイルであることがわかっている場合は、いくつかのフープをジャンプできます。
URL resourceUrl = getClass().getResource(path);
File file = new File(resourceUrl.toURI());
OutputStream output = new FileOutputStream(file);
これはUNIXスタイルのシステムではうまく機能するはずですが、Windowsのファイルパスがこの消化不良を引き起こす可能性があります。それを試してみてください、しかし、あなたは大丈夫かもしれません。
ファイルに書き込む方法はありますか?
誰がそれがファイルだと言いますか? getResourceAsStream()
の要点は、それが真実ではない可能性があるため、それを抽象化することです。具体的には、リソースはJARファイル内にあるか、HTTPサーバーから読み取られるか、またはClassLoader
の実装者が想像できるすべてのものである可能性があります。
プログラム配布の一部であるリソースに書き込みたいしたくないことは本当にありません。ほとんどの場合、それは概念的に間違ったことです。設定またはユーザー固有のデータは、 Preferences API またはユーザーのホームディレクトリに移動する必要があります。