我已经通过类似的帖子,但他们没有真正回答我的问题。因此,我在一个单独的线程中发布我的问题。 我需要跳过文件中的某些字节,这我在字节array.I正在读我试图通过下面的代码在一个文件中读取字节:java.lang.NegativeArraySizeException
1. byte [] readBytesToSKip = null;
2. readBytesToSKip = new byte[(int)bytesToSkip];
3. bytesReadToSkip = System.in.read(readBytesToSKip) ;
4. if(bytesReadToSkip > 0)
5. {
6. baos_.write(readBytesToSKip, 0, bytesReadToSkip);
7. }
实现这一目标,但我得到一个NegativeArraySizeException
在那里的大小超过Integer.MAX_VALUE
线2条。否则,我不知道如何实现这一目标。
bytesToSkip
是只要我在下面的函数计算:
public static long bytesToLong1(byte[] bytes) {
long value = 0;
for (int i = 0; i < bytes.length; i++)
{
value = (value << 8) + (bytes[i] & 0xff);
}
return value;
}
'bytesToSkip'的值是多少?如果它是“long”并且大于“Integer.MAX_VALUE”,那么您将无法一次跳过它。你需要分多个步骤来完成。正如所写,这个问题闻起来像一个[XY问题](http://xyproblem.info)。告诉我们你正在努力完成的事情。 –
“bytesToSkip”首先是“long”的意义何在?因为你无法一次读取那么多的数据?代码本身有什么意义?你知道'InputStream.skip()'吗? – EJP
@EJP我需要读取字节形式的标准输入这就是为什么我没有使用InputSream的第一位。 –