如何使用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();