我正在编写一个 java 程序,其中我必须将所有整数写入文件。为了提高效率,我只想将 int 写为 4 个字节(我认为这将是一种二进制文件,但我不确定)并且在从文件中读取时我只想直接读取整数(我不想读取字节然后将它们转换为整数)。有没有办法做到这一点。
我想将数百万个整数写入文件我希望该方法快速高效。
我是新手,所以请忍受我。
使用DataOutputStream
类或RandomAccessFile
. 两者都提供了编写结构化二进制数据的方法,例如您想要的“int as 4 bytes”。
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);
byte[] bytes = ByteBuffer.allocate(4).putInt(myIntVlaue).array();