2011-07-08 28 views
6

InputStreamをFileChannelに書き込むことはできますか?FileChannelを使用してInputStreamを記述する

私はjava.nio.channels.FileChannelを使用してファイルを開き、ロックしてから、出力ファイルにInputStreamを書き込みます。 InputStreamは、別のファイル、URL、ソケットなどで開くことができます。私は以下のコードを書きました:

FileOutputStream outputStream = new FileOutputStream(outputFile); 
FileChannel outputChannel = outputStream.getChannel(); 
FileLock lock = outputChannel.lock(); 
try { 
    outputChannel.transferFrom(???); 
} finally { 
    lock.release(); 
    outputChannel.close(); 
    outputStream.close(); 
} 

しかし、outputChannel.transferFromの最初の引数(...)はReadableByteChannelオブジェクトを要求します。私はInputStreamを入力として使用しているので、必要なチャンネルを作成するためのinputStream.getChannel()メソッドはありません。

InputStreamからReadableByteChannelを取得する方法はありますか?

答えて

5

あなたはReadableByteChannel readableChannel = Channels.newChannel(myinputstream)を使用することができます。

関連する問題