为什么把0xfffffff写进去后,读出来是乱码?
import java.io.*;
public class Test {
public static void main(String[] args)throws Exception{
File file = new File("test/test.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
//写入文件
int i = 0x7fffffff;
raf.write(i >>> 24);
raf.write(i >>> 16);
raf.write(i >>> 8);
raf.write(i);
//从文件读取
raf.seek(0);
byte[] b = new byte[4];
raf.read(b);
String s = new String(b,"utf-16be");//utf-16be换成项目默认的编码,读出来也是乱码
System.out.println(s);
raf.close();
}
}运行结果:

期待的效果是读出“2147483647”这个数字,即0x7fffffff的十进制表示。那么代码该怎么修改呢??
还有一个问题:无符号右移运算符>>>换成右移运算符>>应该也可以吧?