Czy mogę napisać dowolny InputStream do FileChannel?Używanie FileChannel do zapisu dowolnego InputStream?
Używam java.nio.channels.FileChannel, aby otworzyć plik i zablokować go, a następnie zapisanie InputStream do pliku wyjściowego. InputStream może zostać otwarty przez inny plik, URL, gniazdo lub cokolwiek innego. Mam napisać następujące kody:
FileOutputStream outputStream = new FileOutputStream(outputFile);
FileChannel outputChannel = outputStream.getChannel();
FileLock lock = outputChannel.lock();
try {
outputChannel.transferFrom(???);
} finally {
lock.release();
outputChannel.close();
outputStream.close();
}
Jednak pierwszy argument outputChannel.transferFrom (...) zwraca obiekt ReadableByteChannel. Ponieważ używam InputStream jako wejścia, nie ma on metody inputStream.getChannel(), aby utworzyć wymagany kanał.
Czy istnieje sposób na uzyskanie ReadableByteChannel z InputStream?