黑马程序员技术交流社区

标题: 学习中的小问题 [打印本页]

作者: 郑广昌    时间: 2012-12-26 11:22
标题: 学习中的小问题
class tt
{
public static void main(String[] args)throws
IOException
{
  writer();
}
public static void writer()throws IOException
{
  RandomAccessFile raf=new RandomAccessFile
("A.txt","rw");
  raf.write("离子".getBytes());
  raf.write(32)
}
}运行结果是文件里只有离子,32哪里去了?

作者: 马志军    时间: 2012-12-26 16:02
本帖最后由 马志军 于 2012-12-26 20:43 编辑

开始以为这方法不对write(int b)这方法文档看的不是太懂,网上说这种写的是最低8位,但最低8位也是32啊,后来不写32,发现写与不写文件字节大小不同,所以raf.write(32)这句话肯定写东西进去了。改了个,写33,发现多了个感叹号,这时才反应过来可能是ASCII码,一查32对应的是空格,是写进去了,只不过是个空格。肯定都是转成字符串写进去的。
后来看到个 void writeBytes(String s) 按字节序列将该字符串写入该文件。 试着用了下raf.writeBytes(new Integer(32).toString());还真打进去了。
具体原理好像也不怎么懂
作者: 酸溜溜    时间: 2012-12-26 16:18
运行结果是文件里只有离子
作者: 清水    时间: 2012-12-26 21:29
32应该是空格
作者: 郑广昌    时间: 2012-12-27 10:44
哦,空格位!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2