您的位置:首页 > 其它

两种方法使用随机存取文件流RandomAccessFile实现根目录下文档内容任意位置的插入。

2016-04-06 11:15 931 查看
public class TestRandomAccessFile {

其实,方法都是 一个思想,但是实现一个复杂一点,一个简单一些。补充:hello.txt中内容为:abcdefg12345

//方法一:实现插入的效果:在d字符后面插入“xy”

@Test

public void testInsert1(){

RandomAccessFile raf = null;

try {

raf = new RandomAccessFile(new File("hello.txt"),"rw");

raf.seek(4);//调整指针到第四个位置

String str = raf.readLine();//取出余下字符串“efg123456”

raf.seek(4);//指针重新调整到第四个位置

raf.write("xy".getBytes());//在第四个位置写入字符串“xy”

raf.write(str.getBytes());//插入“xy”完成后写入原来的数据,此方法不需要调整指针

}catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

if(raf != null){

try {

raf.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

//方法二:实现插入的效果:在d字符后面插入“xy”

@Test

public void testInSert2(){

RandomAccessFile raf = null;

try {

raf = new RandomAccessFile(new File("hello.txt"),"rw");

String str=new String("efg12345");//取出第四个位置之后的内容

raf.seek(4);//将指针放到第四个位置

raf.write("xy".getBytes());//在第四个位置写入字符串“xy”

raf.write(str.getBytes());//插入“xy”完成后写入原来的数据,此方法不需要调整指针

}catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

if(raf != null){

try {

raf.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: