Java FileInput / OutputStream和ByteBuffer

如何使用ByteBuffer将整数1432写入FileOutputStream写入的文件中.由于1432占用多个字节,因此我们不能使用write()方法.
此外,以后使用FileInputStream read()方法时如何获取整数?

我尝试使用:

int i = 1432;
byte[] bytesi = ByteBuffer.allocate(4).putInt(i).array();
fileOS.write(bytesi);

但是当读取文件时:

int e = fileIS.read();
System.out.println(e);
int e1 = fileIS.read();
System.out.println(e1);
int e2 = fileIS.read();
System.out.println(e2);
int e3 = fileIS.read();
System.out.println(e3);

我得到如下输出:

255
132
201
255

解决方法:

由于您使用ByteBuffer从整数生成字节,因此您也可以将其用于逆转换

byte[] bytes = new byte[4];
fis.read(bytes);
int x = ByteBuffer.wrap(bytes).getInt();
上一篇:Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition


下一篇:使Java的ByteBuffer线程安全的选项