package priv.whs.java;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
*
* RandomAccessFile实现数据的插入
*
* RandomAccessFile继承于Object类,实现了DateInput和DateOutput接口,即可读取也可写入
* 创建RandomAccessFile对象时还需要指定一个mode参数,该参数指定RandomAccessFile的访问模式,只读方式"r",读写方式"rw"
*
* @author whs
* @date 2022-10-20
*/
public class RandomAccessFileTest {
@Test
public void test() {
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile("hello.txt", "rw");
//将指针调到要插入的地方
raf.seek(3);
StringBuilder stb = new StringBuilder((int) (new File("hello.txt").length()));
byte[] bytes = new byte[1024];
int len;
while ((len = raf.read(bytes)) != -1) {
stb.append(new String(bytes));
}
//此时指针在文末,需要重新调回指针到要插入的位置
raf.seek(3);
raf.write("xyz".getBytes());
//将stb中的内容写回到文本中
//raf.write(stb.toString().getBytes());
//或者
raf.writeBytes(stb.toString());
} catch (IOException e) {
e.printStackTrace();
} finally {
//关闭流
try {
if(raf != null)
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
RandomAccessFile实现数据的插入
最新推荐文章于 2024-09-28 18:43:38 发布
关键词由CSDN通过智能技术生成