sprnate
2015-03-11 09:38
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的十进制表示。那么代码该怎么修改呢??
还有一个问题:无符号右移运算符>>>换成右移运算符>>应该也可以吧?
使用:System.out.println(raf.readInt());
就可以读出你想要的数了。
System.out.println(Arrays.toString(b));
输出为:[127, -1, -1, -1]
应该读不出数字,因为你写进去的时候也不是这些数字。你可以把移位后的值输出来看看。
文件传输基础——Java IO流
133754 学习 · 1030 问题
相似问题
回答 2
回答 3