黑马程序员技术交流社区

标题: 关于RandomAccessFile 问题 [打印本页]

作者: 杨银川    时间: 2011-12-14 22:46
标题: 关于RandomAccessFile 问题
           RandomAccessFile raf=new RandomAccessFile("D:\\Test\\a.txt", "rw");
        raf.write("李四".getBytes());
        raf.writeInt(97);
想问一下raf.writeInt(97);存入文件的是a,能不能把97直接存到文件夹,而不是a 呢?
作者: 周胜    时间: 2011-12-14 23:17
本帖最后由 周胜 于 2011-12-14 23:31 编辑

个人认为RamdomAccessFile是用来随机读取文件的,虽然存进来去97在记事本中看不出来但是依然可以将97以INT型读出来。
import java.io.*;

public class RandomAccessFileDemo {
        public static void main(String[] args) throws Exception {
                File f=new File("D:\\Test\\a.txt");
                RandomAccessFile raf = null;
                 raf=new RandomAccessFile(f, "r");
                 int g = 0;
                 raf.skipBytes(4);
               
                 g = raf.readInt();
                 System.out.println("text中的INT型数据为:" + g);
               
               
        }
}

text中的INT型数据为:97

作者: 程传鹏    时间: 2011-12-15 08:30
RandomAccessFile raf=new RandomAccessFile("D:\\Test\\a.txt", "rw");
        raf.write("李四".getBytes());
        raf.writeInt(97);
想问一下raf.writeInt(97);存入文件的是a,能不能把97直接存到文件夹,而不是a 呢?
首先明确下,存入内存的是97而不是a,只是我们通过记事本看到的是a,97在内存中存的是97对应的二进制,我们用记事本打开的时候,默认记事本通过GBK编码来读取97对应的GBK编码,我们在内存中存的其实就是97
作者: 任涛    时间: 2011-12-15 11:26
"97".getBytes();  把这个写入就OK 了  如果直接把97的话,用记事本打开会默认用本地编码集来映射,就是a了





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