IO之随机读写流RandomAccessFile
来源:互联网 发布:淘宝客服服务回复 编辑:程序博客网 时间:2024/05/17 08:58
特点:
不是io体系中的子类。
1. 该对象即能读,又能写。
* 2,该对象内部维护了一个byte数组,并通过指针可以操作数组中的元素,
* 3,可以通过getFilePointer方法获取指针的位置,和通过seek方法设置指针的位置。
* 4,其实该对象就是将字节输入流和输出流进行了封装。
* 5,该对象的源或者目的只能是文件。通过构造函数就可以看出。
RandomAccessFile(File file,String mode)
创建从中读取和向其中写入(可选)的随机访问文件流,该文件由
File
参数指定。RandomAccessFile(String name,String mode)
创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称。
mode解释:
值
含意
IOException
。"rw"打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。方法:
boolean
readBoolean()
从此文件读取一个
boolean
。其余类比 String
readLine()
从此文件读取文本的下一行。
void
write(byte[] b)
将
b.length
个字节从指定 byte 数组写入到此文件,并从当前文件指针开始。 void
write(byte[] b, int off, int len)
将
len
个字节从指定 byte 数组写入到此文件,并从偏移量 off
处开始。 void
write(int b)
向此文件写入指定的字节。
void
writeInt(int v)
按四个字节将
int
写入该文件,先写高字节。 void
writeLong(long v)
按八个字节将
long
写入该文件,先写高字节。 void
writeShort(int v)
按两个字节将
short
写入该文件,先写高字节。import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;public class RandomAccessFileDemo {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException { //writeFile();//readFile();randomWrite();}public static void randomWrite() throws IOException{RandomAccessFile raf = new RandomAccessFile("ranacc.txt", "rw");//往指定位置写入数据。raf.seek(3*8);raf.write("哈哈".getBytes());raf.writeInt(108);raf.close();}public static void readFile() throws IOException {RandomAccessFile raf = new RandomAccessFile("ranacc.txt", "r");//通过seek设置指针的位置。raf.seek(1*8);//随机的读取。只要指定指针的位置即可。 byte[] buf = new byte[4];raf.read(buf);String name = new String(buf);int age = raf.readInt();System.out.println("name="+name);System.out.println("age="+age);System.out.println("pos:"+raf.getFilePointer());raf.close();}//使用RandomAccessFile对象写入一些人员信息,比如姓名和年龄。public static void writeFile() throws IOException{/* * 如果文件不存在,则创建,如果文件存在,不创建 * */RandomAccessFile raf = new RandomAccessFile("ranacc.txt","rw");raf.write("张三".getBytes());raf.writeInt(97);raf.write("小强".getBytes());raf.writeInt(99);//raf.close();}}
RandomAccessFile:
特点:
1,即可读取,又可以写入。
2,内部维护了一个大型的byte数组,通过对数组的操作完成读取和写入。
3,通过getFilePointer方法获取指针的位置,还可以通过seek方法设置指针的位置。
4,该对象的内容应该封装了字节输入流和字节输出流。
5,该对象只能操作文件。
通过seek方法操作指针,可以从这个数组中的任意位置上进行读和写
可以完成对数据的修改。
但是要注意:数据必须有规律。
0 0
- IO之随机读写流RandomAccessFile
- Java IO流之随机读写流RandomAccessFile
- Java IO RandomAccessFile随机读写文件用法
- java22.IO操作------RandomAccessFile随机文件读写
- RandomAccessFile(随机读写流)
- java RandomAccessFile随机读写流
- IO流--随机访问(RandomAccessFile)
- IO流之RandomAccessFile
- RandomAccessFile 随机读写
- RandomAccessFile 文本随机读写
- 随机读写文件RandomAccessFile
- RandomAccessFile文件随机读写
- IO流(RandomAccessFile随机访问流)
- IO流--RandomAccessFile--随机访问文件
- JAVA IO流RandomAccessFile随机读取
- 24-IO流-60-IO流(RandomAccessFile-读取&随机读取)
- 24-IO流-61-IO流(RandomAccessFile-随机写入&细节)
- 随机读写文件内容之RandomAccessFile类相关
- 2016ACM/ICPC亚洲区沈阳站现场赛题解报告
- spring下应用@Resource, @Autowired 和 @Inject注解进行依赖注入的差异
- 1003. Prime Palindromes
- 观察者模式——————个人理解
- MySQL数据库删除后的恢复工作
- IO之随机读写流RandomAccessFile
- codevs1961 躲避大龙
- IO(四)
- Java操作properties文件
- Windows通过系统命令sc,添加进系统服务中
- SCOI2011 糖果
- Docker容器内多进程管理(一)-Supervisor
- POJ1011 搜索+剪枝【很好】
- 2016.10.30 Bootstrap.5(组件)