我正在使用以下方法读取文件:
int len = (int)(new File(args[0]).length());
FileInputStream fis =
new FileInputStream(args[0]);
byte buf[] = new byte[len];
fis.read(buf);
正如我发现的here http://java.sun.com/developer/technicalArticles/Programming/PerfTuning/。是否可以转换byte array buf
to an Int Array
?正在转换Byte Array
to Int Array
会占用更多空间吗?
编辑:我的文件包含数百万个整数,例如,
100000000 200000000 .....(使用正常的int文件写入方式写入)。我把它读到字节缓冲区。现在我想将它包装到 Int Buffer 数组中。怎么做 ?我不想将每个字节转换为 int。
您在注释中说过,您希望输入数组中的四个字节对应于输出数组上的一个整数,这样效果很好。
取决于您希望字节采用大端顺序还是小端顺序,但是......
IntBuffer intBuf =
ByteBuffer.wrap(byteArray)
.order(ByteOrder.BIG_ENDIAN)
.asIntBuffer();
int[] array = new int[intBuf.remaining()];
intBuf.get(array);
完成,分三行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)