java RandomAccessFile 类
来源:互联网 发布:python 单核可以子进程 编辑:程序博客网 时间:2024/05/19 21:18
RandomAccessFile 类
是Java语言中功能最为丰富的文件访问类,它提供了众多的文件访问方法。RandomAccessFile 类支持“随机访问”方式,可以跳转到文件的任意位置处读写数据。在要访问一个文件的时候,不想把文件从头读到尾,而是希望像访问一个数据库一样地访问一个文本文件,这时,使用RandomAccessFile类就是最佳选择。
RandomAccessFile 对象类有个位置指示器,指向当前读写处的位置,当读写n个字节后,文件指示器将指向这n个字节后的下一个字节处。刚打开文件时,文件指示器指向文件的开头处,可以移动文件指示器到新的位置,随后的读写操作将从新的位置开始。RandomAccessFile在数据等长记录格式文件的随机(相对顺序而言)读取时有很大的优势,但该类仅限于操作文件,不能访问其它的IO 设备,如网络、内存映像等。以读写的方式打开一个文件时,如果文件不存在,程序会自动创建此文件。
RandomAccessFile类中的常用方法:
void close(); 关闭此随机访问文件流并释放与该流关联的所有系统资源。
long getFilePointer(); 返回此文件中的当前偏移量。
long length(); 返回此文件的长度。
read函数集 从文件读
void seek(long pos); 设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
int skipBytes(int n) 尝试跳过输入的 n 个字节以丢弃跳过的字节。
write函数集 往文件写
setLength(long newLength) 设置文件大小(设置临时文件)
RandomAccessFile 类的构造方法
1. new RandomAccessFile(f, "rw"); // 读写方式
2. new RandomAccessFile(f, "r"); // 只读方式
向文件中记忆写入数据
File file = new File("accessFile"); RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 以下向 raf 文件中写数据 raf.writeInt(20);// 占4个字节 raf.writeDouble(8.236598);// 占8个字节 raf.writeShort(395);// 占2个字节 raf.writeUTF("这是一个UTF字符串");// 这个长度写在当前字符串指针的前两个字节处,可用readShort()读取 raf.writeBoolean(true);// 占1个字节 raf.writeLong(2325451l);// 占8个字节 raf.writeUTF("又是一个UTF字符串哈哈"); raf.writeFloat(35.5f);// 占4个字节 raf.writeChar('a');// 占2个字节 raf.close();
从文件中读取随机记忆的文件内容
File file = new File("accessFile"); RandomAccessFile raf = new RandomAccessFile(file, "rw"); System.out.println(raf.readInt());//读取Int数据,指针会往后移动4字节 System.out.println(raf.readDouble());//读取Double数据,指针会往后移动8字节 System.out.println(raf.readUTF());//读取字符串,指针会移到该字符串后 raf.skipBytes(3);//跳过3个字节,也就是跳过上面例子的 boolen 和 short 值。 System.out.println(raf.readLong());//读取long值 short readShort = raf.readShort();//读取字符串的长度 System.out.println("目前指针处的字符串长度为=" + readShort); raf.skipBytes(readShort);//跳过该字符串 System.out.println(raf.readFloat());//读取float值 System.out.println(raf.readChar());//读取char值 //long length = raf.length(); //System.out.println("文件的总字节数为:"+length); //long filePointer = raf.getFilePointer();//当前指针的位置,定位到哪个字节了。 //System.out.println("目前字节指针定位在:"+filePointer); //raf.seek(4);//直接定位到第4个字节处。
阅读全文
0 0
- java的RandomAccessFile类
- JAVA RandomAccessFile 类
- java的RandomAccessFile类
- Java IO--RandomAccessFile类
- Java IO-RandomAccessFile类
- java中RandomAccessFile类
- java RandomAccessFile类
- java 中的RandomAccessFile类
- java RandomAccessFile 类
- java IO流 RandomAccessFile类
- JAVA IO系列----RandomAccessFile类
- java IO之 RandomAccessFile类
- java中RandomAccessFile类用法
- Java IO之RandomAccessFile类
- java RandomAccessFile类的用法
- java学习6 RandomAccessFile类
- JAVA 的 RandomAccessFile类用法
- java Io RandomAccessFile类 笔记
- 完成端口IOCP详解
- [kmp]kmp求字符串中子串的个数
- ajax异步刷新
- Maven实战(maven安装和配置【windows系统】)
- 617. Merge Two Binary Trees(二叉树的合并)
- java RandomAccessFile 类
- window.history.go(-1)返回且刷新页面
- 仿SDCycleScrollView(Swift版本)
- 应避免的11个最常见的设计误区(下)
- 51nod 1432 独木舟
- ccf认证路径解析90分运行错误
- MyBatis
- asp.net c# 异步日志通用类(4)
- 设计教育面临的最大问题