使用Java的FileInputStream

Jav*_*esp 2 java io stream fileinputstream

java.io.FileInputStream,有一种方法int read(Byte[] buffer,int offset,int numBytes); 我们如何使用这个功能 - 这个方法有什么区别read(byte[] buffer)吗?

Thi*_*ilo 7

正如Javadoc指出的那样(以及参数的名称表示),具有offset和numBytes的方法仅使用缓冲区的一部分来放置其输出.

public int read(byte[] b,
            int off,
            int len)
     throws IOException

Parameters:
    b - the buffer into which the data is read.
    off - the start offset of the data.
    len - the maximum number of bytes read. 
Run Code Online (Sandbox Code Playgroud)

如果你想重用已经有数据,你不想揍(当然,已有的缓冲区,您可以使用此方法numBytes开始从offset会被覆盖).

在Java中,几乎所有缓冲区上的操作都提供了这种接口.如果使用得当,您可以避免复制/缓冲数据超过必要的次数.