java - 将InputStream写入RandomAccessFile的最佳方法

标签 java io

假设我有一个方法

private int writeToFile(RandomAccessFile file, InputStream input) {
    int numberOfBytesWritten;
    //for now I have this :
    int data = in.read();
    while(data != -1) {
            //do something with data...
            numberOfBytesWritten += 1;
            f.write(data);
            data = in.read();
     }

    return numberOfBytesWritten;
}

我想这不是将数据写入 RAF 的最佳方式。我怎样才能做得更好?

最佳答案

规范的方式:

byte[] buffer = new byte[8192]; // or more if you like
int count;
while ((count = in.read(buffer)) > 0)
{
    out.write(buffer, 0, count);
    numberOfBytesWritten += count;
}
out.close();
in.close();

关于java - 将InputStream写入RandomAccessFile的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29511406/

相关文章:

java - Android 保存和加载字符串和 boolean 值的 1D 和 2D 数组

Haskell 单元测试使用 IO monad

java - OrientDB使用gremlin-java中的索引吗?

java - 功能代码上的调试流跟踪抛出 IncompatibleClassChangeError

java - 这个替换代码有什么问题吗?

file - 平滑运算符 : Rename a file while writing to it

java - java中使用HTMLParser获取所有节点

java - GAE,升级datanucleus jar包后出现一些异常

c++ - "Optimal"IO 缓冲 - 程序员 's or Kernel' s 任务?

c - 如何在C中向后读取文件?