[Java] 纯文本查看 复制代码 
				FileOutputStream fos = new FileOutputStream("ioTest\\test2.txt");
				fos.write(-48);
				fos.write(257);
				fos.close(); 
 
上面的代码实际向文件写入了什么呢? 
write方法虽然传的参数是一个int型,但是实际有效的只有一个字节,而int型长度为4个字节,所以java在实际写入时会将前面3个字节去掉,只存最后一个字节的数据,如上面 fos.write(-48);,(int)-48 用二进制补码表示为11111111 11111111 11111111 11010000(原码取反加一),舍弃掉前面24位,实际存的是后面8位,用十进制表示为208。  
同理 fos.write(257);   257因为是正数,所以反码和本身一样,为 00000000 00000000 00000001 00000001 ,舍弃前面24位,所以最后写入文件的是 1 。   |