小编Eri*_*ond的帖子

Java:如何"修剪"字节数组?

所以我有一些代码从文件中读取一定数量的字节并返回结果字节数组(这基本上用于分块文件以通过网络发送(最终)base64编码的ascii文本).

它工作正常,除了生成文件的最后一个块时,它不是一个完整的块.因此,生成的字节数组不满.但是,它是一个恒定的大小,这意味着文件被重新组装,有一大堆额外的数据(可能是0)附加到末尾.

我怎样才能使文件的最后一个块的byte []真正只包含它需要的数据?代码如下所示:

 private byte[] readData(File f, int startByte, int chunkSize) throws Exception {
    RandomAccessFile raf = new RandomAccessFile(f, "r");
    raf.seek(startByte);
    byte[] data = new byte[chunkSize];
    raf.read(data);        
    raf.close();
    return data;
}
Run Code Online (Sandbox Code Playgroud)

因此,如果chunkSize大于文件中的剩余字节,则返回一个完整大小的byte [],但它只有半满的数据.

java file-io byte bytearray file

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

byte ×1

bytearray ×1

file ×1

file-io ×1

java ×1