5

我正在编写一个 java 程序,其中我必须将所有整数写入文件。为了提高效率,我只想将 int 写为 4 个字节(我认为这将是一种二进制文件,但我不确定)并且在从文件中读取时我只想直接读取整数(我不想读取字节然后将它们转换为整数)。有没有办法做到这一点。

我想将数百万个整数写入文件我希望该方法快速高效。

我是新手,所以请忍受我。

4

3 回答 3

6

使用DataOutputStream类或RandomAccessFile. 两者都提供了编写结构化二进制数据的方法,例如您想要的“int as 4 bytes”。

于 2012-06-04T16:30:47.197 回答
6
 FileOutputStream fos = new FileOutputStream("numbers.dat");
 DataOutputStream dos = new DataOutputStream(fos);
 dos.writeInt(my_int);
 dos.flush();
 dos.close();

如果要缓冲数据,请将文件流包装到缓冲流中,如下所示:

FileOutputStream fos = new FileOutputStream("numbers.dat");
BufferedOutputStream bos = new BufferedOutputStream(fos);
dos = new DataOutputStream(bos);
于 2012-06-04T16:32:43.407 回答
1
  byte[] bytes = ByteBuffer.allocate(4).putInt(myIntVlaue).array();
于 2012-06-04T16:34:53.340 回答