将InputStream写入RandomAccessFile的最佳方法

时间:2015-04-08 09:54:15

标签: 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写入数据的最佳方式。我怎样才能做得更好?

1 个答案:

答案 0 :(得分:1)

规范方式:

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();