您的位置:首页 > 编程语言 > Java开发

java Io RandomAccessFile类 笔记

2016-03-31 11:25 453 查看
/**
* 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();
}
}

}

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