将 InputStream 写入 RandomAccessFile 的最佳方式

Best way to write InputStream to RandomAccessFile

假设我有一个方法

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