RandomAccessFile操作文件

 1 package file;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.RandomAccessFile;
 8
 9
10 public class InsertContent {
11
12     public static void insert(String fileName,long pos,String insertContent) throws IOException{
13         File tmp = File.createTempFile("tmp", null);
14         tmp.deleteOnExit();
15         try(
16             RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
17             FileOutputStream tmpOut = new FileOutputStream(tmp);
18             FileInputStream tmpInputStream = new FileInputStream(tmp)
19             ){
20             //  将记录指针移动文件末尾  追加内容
21 //            raf.seek(raf.length());
22
23             // 将记录指针移动指定位置
24             raf.seek(pos);
25
26             byte[] bbuf = new byte[64];
27
28             int hasRead = 0;
29
30             StringBuffer sbf = new StringBuffer();
31
32             while((hasRead = raf.read(bbuf)) > 0 ){
33                 tmpOut.write(bbuf, 0 , hasRead);
34                 sbf.append(new String(bbuf));
35             }
36             System.out.println(sbf.toString());
37
38             raf.seek(pos);
39
40             raf.write(insertContent.getBytes());
41
42             while ((hasRead = tmpInputStream.read(bbuf)) > 0) {
43                 raf.write(bbuf , 0 , hasRead);
44             }
45         }
46     }
47
48     public static void main(String[] args) {
49         try {
50             insert("f:/new 1.txt", 45, "ajsdkjfksldjfkl");
51         } catch (IOException e) {
52             e.printStackTrace();
53         }
54     }
55 }
时间: 2024-10-02 14:31:19

RandomAccessFile操作文件的相关文章

类 RandomAccessFile 在文件任意位置进行读写

public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable 此类同时实现了DataOutput和DataInput接口,此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引,称为文件指针:输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针.如果随机访问文件以读取/写入模式创建,则

git bash 常用操作文件命令

git bash常用操作文件命令 在Windows下使用Git Bash,用的是Linux命令,常用几个文件操作命令如下: Windows命令 Linux 命令 意义 Windows命令 Linux 命令 意义 cd e:\xxx cd /e/xxx 切换到xxx目录 cd pwd 显示当前目录路径 dir ls 列出当前目录内容 copy nul xxx.txt touch xxx.txt 生成名为xxx.txt的空文件 del xxx.txt rm xxx.txt 删除xxx.txt文件 m

Python IO编程——操作文件和目录

1.1   操作文件和目录 >>> import os >>> os.name     #操作系统类型 'posix' >>> os.uname()     #详细的系统信息 posix.uname_result(sysname='Linux',nodename='daidai.com', release='2.6.18-194.el5', version='#1 SMP Tue Mar 1621:52:39 EDT 2010', machine='x

操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang

一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) :      用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File (静态类)  : 提供用于创建.复制.删除.移动和打开文件的静态类,并协助创建 FileStream 对象 FileInfo (非静态) 3 StreamReader : 实现一个 TextReader,使其以一种特定的编码从字节流中读取字符 StreamWriter : 实现一个 TextWri

python读写操作文件

with open(xxx,'r,coding='utf-8') as f:   #打开文件赋值给F ,并且执行完了之后不需要 f.close(). 在Python 2.7 及以后,with又支持同时对多个文件的上下文进行管理,即:with open('log1') as obj1, open('log2') as obj2: f.tell          #获取指针位置 f.seek(1)   #调整指针位置 f.writ()     #往文件里面些东西  并切指针到最后 r.read() 

java RandomAccessFile类文件基本操作

RandomAccessFile类是java中仿C的文件操作方法,下面通过实例演示RandomAccessFile类对文件的基本操作,深入了解请查看Java API文档.(注:RandomAccessFile类大多不被采用) 上代码 import java.io.*; public class AccessFileDemo { public static void main(String[] args) { Student stu1=new Student("Zhang San",10

python, 操作文件和目录

操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数 基本功能 import os #操作系统类型 os.name #posix:Linux.Unix或Mac OS X,nt:Windows系统 #要获取详细的系统信息,Windows上不提供 os.uname() #环境变量查看 os.environ #要获取某个环境变量的值,可以调用os.environ.get('key') os.environ.get('PATH') os

C#基础------File类操作文件

//File类操作文件 不需要new //1.Exists(判断文件是否存在) //2.ReadAllLines(把文件每一行读取出来,放到一个字符串数组中) //3.ReadAllText(把文件中的内容读取到一个字符串里) //4.WriteAllText(把字符串写入到文件里,覆盖以前的内容) //5.AppendAllText(把字符串追加到文件里,内容会追加在后面) //6.Copy(把目标文件拷贝到另一个文件) //Directory 操作文件夹 //1.CreateDirector

c++操作文件初体验,读写数据小例子

将数据写入/输出到文件中,进行保存 #include<fstream> //处理文件要包括头文件fstream #include<iostream> #include<cstdlib> //调用exit(1)需要包含cstdlib using namespace std; int main() { int a; //打开文件,要使用文件必须正确打开,对输出文件,注意写ios::out // f1.dat是要"写"的文件名,你可以起你喜欢的名字,如my