相关疑难解决方法(0)

如何使用NIO将InputStream写入File?

我使用下面的方法来写InputStreamFile:

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();
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是使用NIO的正确方法.我读过一个方法FileChannel.transferFrom,它有三个参数:

  1. ReadableByteChannel src
  2. 多头头寸
  3. 长计数

在我的情况下,我只有src,我没有positioncount,有什么办法可以使用这种方法来创建文件?

另外对于Image有没有更好的方法来创建只有InputStreamNIO的图像?

任何信息对我都非常有用.这里有类似的问题,在SO中,但我找不到适合我的案例的特定解决方案.

java nio image inputstream file

16
推荐指数
2
解决办法
3万
查看次数

标签 统计

file ×1

image ×1

inputstream ×1

java ×1

nio ×1