A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨银川 黑马帝   /  2011-12-14 22:46  /  2522 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

           RandomAccessFile raf=new RandomAccessFile("D:\\Test\\a.txt", "rw");
        raf.write("李四".getBytes());
        raf.writeInt(97);
想问一下raf.writeInt(97);存入文件的是a,能不能把97直接存到文件夹,而不是a 呢?

3 个回复

正序浏览
任涛 黑马帝 2011-12-15 11:26:52
板凳
"97".getBytes();  把这个写入就OK 了  如果直接把97的话,用记事本打开会默认用本地编码集来映射,就是a了

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
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

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
周胜 黑马帝 2011-12-14 23:17:34
沙发
本帖最后由 周胜 于 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

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马