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. Mysql数据库死锁分析相关概念

    参考博客: mysql死锁问题分析(https://www.cnblogs.com/LBSer/p/5183300.html) mysql insert锁机制(http://yeshaoting.cn ...

  2. 随学笔记 partAdded

    随学笔记: RectangularDropShadow为矩形对象添加阴影,DropShadowFilter可以为任意形状对象添加阴影. BorderContainer和Panel等容器使用的就是Rec ...

  3. vs2010的帮助文档

    系统重装了,发现vs2010的帮助无论如何都是web方式,这种体验很差劲. google了才明白,原来是ms发展过程的一个败笔. 需要升级到vs2010 sp1才会有跟以前一样的帮助系统. 彻底无语了 ...

  4. 域名和DNS服务器

    概念性的东西: 域名:     ①.百度:域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理 ...

  5. solidity语言6

    映射 可以认为是哈希,格式 mapping(_KeyType => _ValueType) pragma solidity ^0.4.0; contract MappingExample { m ...

  6. March 24 2017 Week 12 Friday

    Our lives are brief, that is why it's important to search for meaning. 人生短暂,所以才要寻找它的意义. What can we ...

  7. 微信小程序开发实践

    目录 项目是否适合移植到小程序上? 概要介绍 实践得到的经验 规则 小程序不支持的 新特性 小窍门 会话管理 进阶 项目是否适合移植到小程序上? 小程序由于微信提供了一些组件,在微信中的一些体验确实不 ...

  8. VS LNK2019 解决办法之一

    LNK2019: unresolved external symbol _main referenced in function __main 有人说这是因为静态动态引用引起的,但是!这些都没有解决我 ...

  9. ACM-ICPC (10/16) Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)

    A. Trip For Meal Winnie-the-Pooh likes honey very much! That is why he decided to visit his friends. ...

  10. POJ 1986 Distance Queries 【输入YY && LCA(Tarjan离线)】

    任意门:http://poj.org/problem?id=1986 Distance Queries Time Limit: 2000MS   Memory Limit: 30000K Total ...