私はに書き込むInputStream
ために次の方法を使用していますFile
:
private void writeToFile(InputStream stream) throws IOException {
String filePath = "C:\\Test.jpg";
FileChannel outChannel = new FileOutputStream(filePath).getChannel();
ReadableByteChannel inChannel = Channels.newChannel(stream);
ByteBuffer buffer = ByteBuffer.allocate(1024);
while(true) {
if(inChannel.read(buffer) == -1) {
break;
}
buffer.flip();
outChannel.write(buffer);
buffer.clear();
}
inChannel.close();
outChannel.close();
}
これがNIOを使用する正しい方法であるかどうか疑問に思っていました。FileChannel.transferFrom
私は3つのパラメータを取るmethod を読みました:
- ReadableByteChannel src
- ロングポジション
- ロングカウント
私の場合src
、 しかありません。position
andcount
はありません。この方法を使用してファイルを作成する方法はありますか?
InputStream
また、イメージの場合、NIOのみからイメージを作成するより良い方法はありますか?
どんな情報も私にとって非常に役に立ちます。SOには同様の質問がありますが、私の場合に適した特定の解決策が見つかりません。