Java分享笔记:RandomAccessFile流 & 在文件指定位置插入内容
RandomAccessFile流:随机存取文件流,该类定义了一个记录指针,通过移动指针可以访问文件的任意位置,且对文件既可以读也可以写。使用该类的write方法对文件写入时,实际上是一种覆盖效果,即写入的内容会覆盖相应位置处的原有内容。
为了实现插入内容的效果,需要我们自行设计程序来实现。下面是笔者的程序设计。
[1] 程序设计
/*---------------------
程序实现的功能:
....//使用RandomAccessFile流设计一个类,实现在指定文件的指定位置插入指定的内容
---------------------*/
package pack01; import java.io.*; public class InsertContent { private String filePath; //要操作的文件的路径
private String content; //要插入的内容
private long position; //要插入的位置 //构造方法
public InsertContent(String path, String con, long pos) {
filePath = path;
content = con;
position = pos;
} //设置要操作的文件的路径
public void setFilePath(String path) {
filePath = path;
} //设置要插入文件的内容
public void setContent(String con) {
content = con;
} //设置要插入的位置
public void setPosition(long pos) {
position = pos;
} //插入内容的具体实现方法
public void insertCon(){ RandomAccessFile raf = null; try { raf = new RandomAccessFile(filePath, "rw"); //将随机存取文件流连接到文件,访问方式设置为可读可写
raf.seek(position); //指定插入的位置 //***************先将插入点后面的内容保存起来****************
StringBuffer sb = new StringBuffer();
byte[] b = new byte[100];
int len;
while( (len=raf.read(b)) != -1 ) {
sb.append( new String(b, 0, len) );
}
//................................................. raf.seek(position); //重新设置插入位置
raf.write( content.getBytes() ); //插入指定内容
raf.write( sb.toString().getBytes() ); //恢复插入点后面的内容 } catch (IOException e) { e.printStackTrace(); } finally { //关闭随机存取文件流
try {
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} //测试方法
public static void main(String[] args) { InsertContent ic = new InsertContent("d:/JavaTest/file1.txt", "Java", 5);
ic.insertCon();
}
}
[2] 运行效果
运行前:
运行后:
注:希望与各位读者相互交流,共同学习进步。
Java分享笔记:RandomAccessFile流 & 在文件指定位置插入内容的更多相关文章
- 利用RandomAccessFile类在指定文件指定位置插入内容
package File; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- java 学习笔记之 流、文件的操作
ava 学习笔记之 流.文件的操作 对于一些基础的知识,这里不再过多的解释, 简单的文件查询过滤操作 package com.wfu.ch08; import java.io.File; import ...
- Java 替换word文档文字,指定位置插入图片
先说下 需要的依赖包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ex ...
- java POI往word文档中指定位置插入表格
1.Service demo import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.a ...
- JS向光标指定位置插入内容
方法: function insertHtmlAtCaret(html) { var sel, range; if (window.getSelection) { // IE9 and non-IE ...
- JAVA通过I/O流复制文件
JAVA通过I/O流复制文件 本文是对字节流操作,可以多音频视频文件进行操作,亲测有效. 个人感觉这个东西就是靠记的, 没什么好解释的,,,, import java.io.File; import ...
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6370890.html 如果觉得对您有 ...
- 正确截取List指定位置的内容
正确截取List指定位置的内容 import java.util.ArrayList; import java.util.List; public class ListUtils { public s ...
- 在Word指定位置插入富文本域值(html文本)
遇到此问题,首先想到的就是各种百度.结果度娘了一会并没有发现有用的有效的解决方法,哎,看来还得靠自己啊. 首先整理了下手头上的资源,一是HtmlAgilityPack,专门解析Html文本用的:二是我 ...
随机推荐
- python搭建本地服务器
python搭建本地服务器 python3以上版本 'python3 -m http.server 8000' 默认是8000端口,可以指定端口,打开浏览器输入http://127.0.0.1:800 ...
- MongoDB学习之mongoose
MongoDB介绍: MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换 ...
- Eclipse SWT
Reference: http://www.eclipse.org/swt/ http://www.functionx.com/win32/Lesson01.htm http://www.win32d ...
- 18_Condition条件
[简述] wait()和notify()方法是和synchronized关键字合作使用的. Condition是和重入锁相关联的,通过ReentrantLock.newCondition()生成一个与 ...
- 全面了解 NOSQL
NoSQL被我们用得最多的当数key-value存储,想知道为什么要有NOSQL,就首先要明白传统关系SQL: 传统关系数据库的瓶颈 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简 ...
- JDE获取所有字典数据
select a.*,b.DTDL01 FROM crpctl.f0004 a,crpctl.f0004d b where a.dtsy =b.dtsy(+) and a.dtrt =b.dtrt(+ ...
- Android应用开发基础之二:数据存储和界面展现(二)
常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...
- 微软技术大会直播倒计时7天 | 地球上的IT咖们,正在慢慢向北京聚集
去年,一句歌词火了:“我在北方的寒夜里,四季如春.”足以见得,北京的冬天,是可以把人冻蒙圈儿的. 然而有一群人,却正在慢慢靠近这样寒冷的北京,7 天后,他们将齐聚在北京. 他们来这里干什么?又是来见谁 ...
- oracle_set_autocommit
preface 1.centos operating system. 2.database is oracle 11g. 3.oracle account is scott. step 1.e ...
- Type Syntax error, insert ")" to complete Expression
今天倒持了 几个小时! 愣是 没有明确 ,为什么我的JSP的第一行没有代码? 还是报错! 错误是: Description Resource Path Location Type Sy ...