我是靠谱客的博主 糟糕老虎,最近开发中收集的这篇文章主要介绍13_8、Java的IO流之随机存取文件流(RandomAccessFile)的使用一、随机存取文件流:RandomAccessFile二、使用说明三、典型代码,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、随机存取文件流:RandomAccessFile
二、使用说明
1、RandomAccessFile类直接继承于java.lang.Object类,并实现了DataInput接口和DataOutput接口。
2、既可以作为输入流,也可以作为输出流使用。
3、RandomAccessFile作为输出流,如果要写入的文件不存在,那么在执行过程中自动创建,如果要写入的文件已存在,那么对已的文件的内容进行覆盖。(默认从头开始覆盖)。
4、使用RandomAccessFile类的相关操作,实现“插入”效果(如果内容很大,则比较耗内存。) seek(int pos)方法,改变指针位置。
三、典型代码
1、复制操作
@Test
public void test1(){
RandomAccessFile raf1 = null;
RandomAccessFile raf2 = null;
try {
//1.
raf1 = new RandomAccessFile(new File("绿地.jpeg"),"r");
raf2 = new RandomAccessFile(new File("绿地1.jpeg"),"rw");
//2.
byte[] buffer = new byte[10];
int len;
while((len = raf1.read(buffer)) != -1){
raf2.write(buffer,0,len);
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if(raf1 != null){
//3.
try {
raf1.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if(raf2 != null){
try {
raf2.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
2、使用RandomAccessFile实现插入效果
/*
使用RandomAccessFile实现插入效果
*/
@Test
public void tst3() throws IOException {
RandomAccessFile raf1 = new RandomAccessFile(new File("hello.txt"),"rw");
StringBuilder sbd = new StringBuilder((int) new File("hello.txt").length());
raf1.seek(3);//将角标调到第三个位置
byte[] buffer = new byte[20];
int len;
while((len = raf1.read(buffer)) != -1){
sbd.append(new String(buffer,0,len));
}
raf1.seek(3);//将角标调到第三个位置
raf1.write("xyz".getBytes());
//将sbd保存的内容写入到hello.txt
raf1.write(sbd.toString().getBytes());
raf1.close();
}
最后
以上就是糟糕老虎为你收集整理的13_8、Java的IO流之随机存取文件流(RandomAccessFile)的使用一、随机存取文件流:RandomAccessFile二、使用说明三、典型代码的全部内容,希望文章能够帮你解决13_8、Java的IO流之随机存取文件流(RandomAccessFile)的使用一、随机存取文件流:RandomAccessFile二、使用说明三、典型代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复