用FileInputStream把文件全部读到一个byte[]里
然后根据你知道的偏移量把对应的byte取出来存到另一个byte[]
转成String就用new String(byte[],"编码")
转成数字就通过移位或是乘法来做.
然后根据你知道的偏移量把对应的byte取出来存到另一个byte[]
转成String就用new String(byte[],"编码")
转成数字就通过移位或是乘法来做.
解决方案 »
- 急问关于修改text值的问题
- 刚编的计算器界面程序,不知道为什么在IE 中老是跳个不停,另外,我把CLASS 文件给删除了,为何IE 还能执行那个程序?很奇怪
- Client端的Socket都已经关闭了,为什么服务器端的ServerSocket不报错误?
- 请问中国最好的Email系统是?
- 哪里可以下载java2图形设计卷2:swing
- 难道这是java的一个bug?!!
- 做完人生第一个项目,高兴并郁闷着,散分!!!!!
- 如何让Java同时使用两个版本的JDBC
- sayhello.java编译成.html以后运行提示“未初始化小程序”,怎么回事?求教!
- 请问如何知道邮件中的邮件哪个是新邮件,我是用POP3协议。请各位大虾指点一下。
- 请问JDialog这个类到处有什么用处?谢谢,给分
- 请问各位,这个关于图形的问题很有趣哎!大家来看看我这段代码!
DataInputStream
有相应的read write 方法
文件头:
【
long nTotal; //文件中记录的总条数
long nextID; //下一个可分配记录的ID号
long nDel; //已被逻辑删除的记录数
】
文件体: 内容为如下的块儿结构,块儿1、块儿2....
块儿1结构示例: long id; //分类id
long parentid; //父分类id
char parentname[MAXPARENTCLASSESLEN+1]; //父分类名称
char classname[ISCM_CLSNAMELEN +1]; //分类名
char dbname[ISCM_DBNAMELEN+1]; //所属库名
in childclsidnum; //子分类数量
long childclsidlist[MAXCHILDCLASSNUM]; //子分类id列表
int nclslevel; //分类级数
int locked; //记录锁定标识,0:未锁定,1:锁定
int clscapChanged; //记录改变标识,0:未改变,1:改变
FileInputSteam fis=new FileInputStream();
byte[] b=new byte[f.length()];
fis.read(b,0,f.length());//把数据全部读入数组
(注意:随手写的,没有处理异常,也不知程序有无错误,IO我很久没用了)
好了,所有的数据都读入数组b了,接下来就是读取了.
char按2个byte,int是4个byte,long好像是8个byte(记不清了),提出相应偏移量内的数据就不可以用>>之类的移位符转成相应的数据特别注意:如有回车符的时候要分清是UNIX格式还是Windows格式,Windows格式的回车要多出一个char.
试试吧!