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流 & 在文件指定位置插入内容的更多相关文章

  1. 利用RandomAccessFile类在指定文件指定位置插入内容

    package File; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  2. java 学习笔记之 流、文件的操作

    ava 学习笔记之 流.文件的操作 对于一些基础的知识,这里不再过多的解释, 简单的文件查询过滤操作 package com.wfu.ch08; import java.io.File; import ...

  3. Java 替换word文档文字,指定位置插入图片

    先说下 需要的依赖包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ex ...

  4. java POI往word文档中指定位置插入表格

    1.Service  demo import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.a ...

  5. JS向光标指定位置插入内容

    方法: function insertHtmlAtCaret(html) { var sel, range; if (window.getSelection) { // IE9 and non-IE ...

  6. JAVA通过I/O流复制文件

    JAVA通过I/O流复制文件 本文是对字节流操作,可以多音频视频文件进行操作,亲测有效. 个人感觉这个东西就是靠记的, 没什么好解释的,,,, import java.io.File; import ...

  7. java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处.  http://www.cnblogs.com/king-xg/p/6370890.html 如果觉得对您有 ...

  8. 正确截取List指定位置的内容

    正确截取List指定位置的内容 import java.util.ArrayList; import java.util.List; public class ListUtils { public s ...

  9. 在Word指定位置插入富文本域值(html文本)

    遇到此问题,首先想到的就是各种百度.结果度娘了一会并没有发现有用的有效的解决方法,哎,看来还得靠自己啊. 首先整理了下手头上的资源,一是HtmlAgilityPack,专门解析Html文本用的:二是我 ...

随机推荐

  1. python之迭代器

    原文 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的gen ...

  2. java编程中'为了性能'一些尽量做到的地方

    原文地址:http://blog.csdn.NET/m13666368773/article/details/7796924 最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们 ...

  3. hibernate从零开始到各种映射

    ORM(对象/关系数据库映射) 对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.它完成了面向对象的编程语言到 ...

  4. 1094 FBI树

    1094 FBI树 2004年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver       题目描述 Description 我们可以把由“ ...

  5. IT集中监控

    监控的从底层到上应该是: 一 数据采集层 二 数据处理层 三 数据展示层 监控需要和ITIL中定义的服务进行相当多的交互,例如监控会使用配置管理数据库CMDB来记录和读取数据,会将事件处理方式从知识库 ...

  6. wxpython 按钮等事件的触发

    1.按钮事件的触发 方法中第二个参数为event

  7. DLRS(深度学习应用于推荐系统论文汇总--2017年8月整理)

    Recommender Systems with Deep Learning Alessandro:ADAAlessandro Suglia, Claudio Greco, Cataldo Musto ...

  8. SVNKit学习——使用High-Level API管理Working Copy示例(六)

    本篇内容是基于SVNKit High-Level API实现的针对Working copy的操作,操作内容与SVN图形化界面.命令行类似. High-Level API类图: 核心思想: 所有操作由各 ...

  9. Android学习——ViewPager的使用(二)

    这一节介绍使用FragmentPagerAdapter适配器,来加载Fragment对象. 数据源 加载Fragment对象时,数据源自然来自Fragment,与View类似,依旧使用List来存放数 ...

  10. SharePoint Server 2010的移动设备配置方案

    随着微软全新一代办公系统Office 2010 的推出,其所支持的移动方案也日渐受到人们的关注,而这些移动功能则是依赖于 SharePoint 2010 的移动性支持.下面就将大家介绍如何设置 Sha ...