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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 一生一世 于 2012-6-26 16:42 编辑

我最近遇到一个小问题,请各位大神帮忙解决
问题是;我想将一组数据写入到指定的文件的指定位置,也就是在一个文件的任意位置插入一段数据,不一定是文件的结尾,我知道SequenceStream可以连接两个文件,但是我是想写入文件的任意位置都行的方法,我也搜索过,可是没有找到满意的答案,希望能给小弟举个例子,这样既方便理解,又能方便说明

6 个回复

倒序浏览
你可以使用RandomAccessFile()类,它里面有个seek()方法,通过调用指针来实现读和写功能。
指针指到哪里,就可以从哪里开始读取,或者从哪里开始写入.
相当的强大.
具体代码,估计要晚一点才可以写出来.
回复 使用道具 举报
楼主,我先来提供以下算法思想;
你想从任意地方插入数据,那首先,定义一个指针,指向你想要插入数据的地方,将这个地方往后直到文件末尾的数据统统复制到一个暂时的缓冲区去,
接着,在插入数据的地方进行数据插入,同时指针进行控制,指向插入数据的末尾;
最后,在指针后边,也就是你插入数据的末尾,将之前复制的文件后半段数据统统复制回去。
至此,大功告成
回复 使用道具 举报

随机读写流,RandomAccessFilel类中有一个方法seek(long),用来移动RandomAccessFile流的读写位置,其中参数a确定读写位置距离文件开头字节的位置。同样你还可以调用getFilePointer()方法取得当前流在文件中的位读写的位置。
回复 使用道具 举报
雅典娜MAX 发表于 2012-6-26 15:23
import java.io.*;

public class RandomAccessFile_Demo {

不错,谢谢
回复 使用道具 举报
小张童鞋 发表于 2012-6-26 14:39
你可以使用RandomAccessFile()类,它里面有个seek()方法,通过调用指针来实现读和写功能。
指针指到哪里,就 ...

那你要是知道这一点就很容易明白你今天上午提出的问题啦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马