【发布时间】:2012-03-04 21:30:11
【问题描述】:
我正在尝试编写一个函数,该函数接受 File 对象、偏移量和字节数组参数,并将该字节数组写入 Java 中的 File 对象。
所以函数看起来像
public void write(File file, long offset, byte[] data)
但是问题是offset参数是long类型,所以不能使用OutputStream的write()函数,它以整数作为偏移量。
与具有skip(long) 的InputStream 不同,OutputStream 似乎无法跳过文件的第一个字节。
有什么好的方法可以解决这个问题吗?
谢谢。
【问题讨论】:
-
您可以在
int中输入的最大数字是 2,147,483,647。您要写入的数组是否大于 +- 2GB? -
只是为了澄清:偏移量只适用于 array 中的位置,而不适用于输出流,对吗?使用 OutputStream 你不能跳过位置。
-
@TheNail 偏移量是指从文件开头的偏移量,而不是数组开头的偏移量。除非您使用 FAT 作为文件系统,否则您确实可以拥有大于 2Gb 的文件。
-
啊,仅供参考:
OutputStream.write()中的 int 偏移参数off是关于数组,而不是流/文件(但我看到已经有一些相关答案)。
标签: java io inputstream outputstream