[b][color=blue](1)(2)是分别写入一个char的低8位数字、高8位数字。
解释如下:
Java中的Character是16位的Unicode。
假设1个char的编码为 YYYYYYYY(高8位) XXXXXXXX(低8位)
(v >>> 0) & 0xFF
v>>>0 无符号左移0为 得到: YYYYYYYY XXXXXXXX
再和 0xFF相与:
00000000 00000000 YYYYYYYY XXXXXXXX
相与
00000000 00000000 00000000 11111111
得到
00000000 00000000 00000000 XXXXXXXX
out.write((v >>> 0) & 0xFF);(1)
写入的就是 整数 00000000 00000000 00000000 XXXXXXXX( char的低8位)
同理 out.write((v >>> 8) & 0xFF);(2)
v>>>8 无符号左移8为 得到: 00000000 YYYYYYYY
再和 0xFF相与:
00000000 00000000 00000000 YYYYYYYY
相与
00000000 00000000 00000000 11111111
得到:
00000000 00000000 00000000 YYYYYYYY
写入的就是 整数 00000000 00000000 00000000 YYYYYYYY ( char的高8位)
这样就把一个Character的数据,以2进制bit流的形式写入到 硬盘中了。
[/color][/b]