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. PAT 1059. Prime Factors

    反正知道了就是知道,不知道也想不到,很快 #include <cstdio> #include <cstdlib> #include <vector> using ...

  2. Sass学习笔记(三)

    一.Sass的控制命令 二.Sass的函数功能 sass中除了可以定义变量,还自备了一系列函数功能,主要包括:字符串函数.数字函数.列表函数.颜色函数.Instrospection函数.三元函数等.当 ...

  3. 洛谷P1941 飞扬的小鸟(背包 dp)

    题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/s ...

  4. 用JQ帮你实现动画导航 手风琴是导航与下拉导航

    1.手风琴式导航,既可以适用于移动端也可使用与PC端 <!DOCTYPE html> <html> <head> <meta charset="UT ...

  5. 16_Queue_利用wait()和notify()编写一个阻塞队列

    [线程间通信概念] 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体必用方式之一.当线程存在通信指挥,线程间的交互性会更强大,在提高CPU利用率的同 ...

  6. JavaScript性能优化小知识总结(转)

    JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文非常详细的介绍了一下JavaScript性能优化方面的知识点,绝对是干货. 前言 一直在 ...

  7. Java—集合框架Set

    Set接口及其实现类——HashSet Set是元素无序并且不可以重复的集合,被称作集. HashSet—哈希集,是Set的一个重要实现类. Set的使用   HashSet没有像List一样的set ...

  8. laravel + haproxy + https 后生成分页 url 非 https 解决办法

    更合适的解决办法:在 AppServiceProvider boot 方法中使用 \URL::forceScheme('https'); 即可. 背景 近日对所有的客户都上线了 https ,本来在 ...

  9. how find a record import other database.

    question:how find a record import other database. answer: solution one:you user insert into table_na ...

  10. jsencrypt代码分析——openssl的rsa加密解密在js的实现

    在js上做rsa,感觉jsencrypt这个是封装的比较好的,但用起来还是遇到了些坑,所以踩进代码里填填坑- 项目在这里 https://github.com/travist/jsencrypt [r ...