/**
* Io流
*
* RandomAccessFile类 随机 随机访问文件 --- 程序可以跳 到文件的任意位置 来读、写文件 。
* @author Administrator
*
*/
public class TestRandomAccessFile {
/**
* 利用 randomAccessFile类 实现 从文本文件的 任意位置 插入内容 的操作。
*/
@Test
public void testRandomAccessFie1(){
RandomAccessFile raf=null;
try {
raf = new RandomAccessFile(new File("random1.txt"),"rw");
// 实现文件内容的插入操作 :
// 1、把指针移动到 要修改的的位置
raf.seek(4);
// 2、从指针位置开始把后面的内容读取到字符串中,
byte[] b = new byte[20];
int len;
StringBuffer sb = new StringBuffer();
while((len = raf.read(b))!=-1){
sb.append(new String(b,0,len));
}
// 循环读取完成之后把指针重新指到要插入的位置 。
raf.seek(4);
// 3、在 指针位置开始 插入内容
raf.write("insert something ".getBytes());
// 4、把读取到字符串的内容重新写回来 。实现在 文件中 任意位置插入。
raf.write(sb.toString().getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(raf !=null){
try {
raf.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 修改 替换 从 指定任意位置 到 指定任意位置+N的 内容
*/
@Test
public void testRandomAccessFie(){
RandomAccessFile raf=null;
try {
raf = new RandomAccessFile(new File("random1.txt"),"rw");
// 把指针移动到 要修改的的位置 ,从 第4个元素开始到第7个元素 替换成 ssb
raf.seek(4);
raf.write("ssb".getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(raf !=null){
try {
raf.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
*
* 利用 RandomAccessFile 随机访问文件类 实现 文件的 读取 ,实现文件的写入 。 最终实现文件的复制 。
*/
@Test
public void testRadomAccessFile(){
// "r"--只读 "rw" --读写
RandomAccessFile raf=null;
RandomAccessFile raf1=null;
try {
raf = new RandomAccessFile(new File("random.txt"),"r");
raf1 = new RandomAccessFile(new File("random1.txt"),"rw");
byte[] b = new byte[20];
int len;
while((len = raf.read(b))!=-1){
raf1.write(b, 0, len);
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally{
if(raf1!=null){
try {
raf1.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(raf!=null){
try {
raf.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
java Io RandomAccessFile类 笔记
最新推荐文章于 2024-04-26 19:39:08 发布