RandomAccessFile类,支持对文件的读取和写入。并且可以设置写入和读取的位置。该位置主要是以字节体现。相当于该文件存储在一个大型byte[] 数组。隐含存在一个指向该数组的指针。类似于该类对象可以设置该隐含的指针位置进行对文件从任意位置开始读写。

RandomAccessFile类的构造方法。

RandomAccessFile(String name,String mode);//name 为与该类对象关联的文件名。mode为打开文件的访问模式。

RandomAccessFile(File file,String mode);//file为相关联的文件。mode同上。mode主要有一下四个值:

含意

"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException
"rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
"rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
"rwd" 打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。

主要方法:

void write(byte[] b);将b.length个字节写入到文件的指定位置中去。

void write(int b);//向文件写入指定的字节。该方法只写如最低的八位。如 write(97) 和write(609)写入的内容一样。都是97 字母a。

void writeInt(int b);//按四个字节将int写入到文件中去。先写高位。

int read();//从文件中读取一个数据字节。

int read(byte[] b);//将最多b.length个数据字节从文件中读到改字节数组中去。

int readInt();//从文件中读取一个有符号的32位整数。

void seek(long pos);//设置文件读写的隐含指针位置偏移量。

long getFilePointer();返回文件中的当前偏移量。

void close();//关闭此随机访问文件流并释放与该流关联的所有系统资源。

代码演示:

package RandromAccessDemo;import java.io.IOException;
import java.io.RandomAccessFile;public class RandomAccessDemo {/*** @param args* @throws IOException */public static void main(String[] args) throws IOException {
//      write();
//      read();randomWriter();}public static void randomWriter() throws IOException {/** 可以再多线程中进行对同一个文件进行写入。*/RandomAccessFile raf = new RandomAccessFile("Random.txt","rw");
//      raf.seek(3*8);//设置指针位置raf.write("武松".getBytes());raf.writeInt(103);}public static void read() throws IOException {RandomAccessFile raf = new RandomAccessFile("Random.txt","r");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+"  age : "+age);System.out.println("getFilePointer: "+raf.getFilePointer());//获得当前指针位置。raf.close();}public static void write() throws  IOException {/** 当文件存在时,不创建,从指定位置开始写。当文件不存在时,则创建文件.*/RandomAccessFile raf = new RandomAccessFile("Random.txt","rw");raf.write("旺财".getBytes());
//      raf.write( 97);//a write只写最低八位
//      raf.write(609);//araf.writeInt(97);raf.write("李煜".getBytes());raf.writeInt(99);raf.close();}}

RandomAccessFile类的简单介绍,以及代码演示相关推荐

  1. PipedInputStream类 和 PipedOutputStream类 的简单介绍和代码演示

    PipedOutputStream类 和PipedInputStream 类为管道输出流 和管道输入流.通常都是以管道输出流作为管道的起始端,通常管道输出流和管道输入流通过connect方法连接起来, ...

  2. Android中PackageManager类的简单介绍

    1.PackageManager这个类,表层意思是包管理者,既然可以管理包,那么包下的一些东西便可以获取,其中可以获取应用图标和应用名称以及包名. 通过下面一行代码实例化PackageManager类 ...

  3. linux下的fgetc()与fputc()函数详细介绍及代码演示

    linux下的标准I/O的fgetc()与fputc()函数详细介绍及代码演示 文章目录 前言 一.fgetc()用法介绍 二.fputc()用法介绍 代码演示 总结 前言 在C语言中,读写文件比较灵 ...

  4. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。

     InputStreamReader 和 OutputStreamWriter类使用方法简单介绍. 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流. ...

  5. java reader_Java之字符输入流,Reader类的简单介绍

    各位小伙伴们大家好,在之前的文章中,小编介绍了Java之文件复制的简单介绍,多是一些关于字节的知识,这次小编要介绍的是字符输入流Reader类,具体如下: java.io.Reader:字符输入流,是 ...

  6. OpenCV卡尔曼滤波介绍与代码演示

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 卡尔曼滤波原理 卡尔曼滤波最早可以追溯到Wiener滤波,不同的是 ...

  7. 工具类—MD5简单介绍以及MD5工具类

    2.MD5简单介绍: 1)MD5是什么鬼?: 答:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛 使用的一种散列函数,用以提供消息的完整性保 ...

  8. Class类的简单介绍

    (虽说转载,但我(linbichengdeps)读完下面文章后个人理解: 1.Class是一个类,且每一个class(类)都有一个Class类,简单的叫法是"class的类". 2 ...

  9. STC89C52单片机I2C通信以及AT24C02介绍使用代码演示

    目录 AT24C02引脚介绍与使用 AT24C02介绍 ​I2C通信介绍 I2C通信时序 起始条件与终止条件 发送一个字节(主机发送到从机) 接受一个字节(从机发送到主机) 发送应答与接受应答 I2C ...

最新文章

  1. 为什么明星公司会选择Go作为编程语言?
  2. 训练 AI 学会通过复制来构建 AI 系统
  3. html语言hr的用法,HTML hr noshade 属性 | Paoo教程
  4. SPOJ 1676 矩阵乘法+DP
  5. vue 后台返回的文件流进行预览_vue实现下载文件流完整前后端代码
  6. HCIBench_2.3.1部署_VSAN_测试工具
  7. 编写MR代码中,JAVA注意事项
  8. 2021高通人工智能创新大赛垃圾分类赛题第五次研讨会
  9. promise的理解和应用
  10. jxl.read.biff.BiffException: Unable to recognize OLE stream解决方法
  11. C Tricks(二)—— 按块访问二维数组
  12. 常用游戏分析工具 之 PChunter 及 procexp 使用心得
  13. 外国人在中国工作要交社保吗?
  14. 逆波兰算法(后缀表达式)
  15. 基于模板方法+协调者委托对现有冗余代码的改造案例
  16. strtotime 用法
  17. 【LaTex】 - 对齐符号的用法,换行符\\的用法,Misplaced 错误怎么解决
  18. 洛谷p2404 自然数的拆分
  19. 实现微信扫描二维码关注公众号,直接注册登录网站
  20. 网络安全攻防演练项目项目流程

热门文章

  1. C++之第一个程序Hello World,使用IO库输出Hello World
  2. Springboot2 自定义异常处理
  3. 微信小程序 全局共享数据
  4. oracle 截取小数点_oracle函数(关于处理小数点位数和时间) | 学步园
  5. alook浏览器_alook浏览器下载-Alook浏览器iOS版下载 苹果版v10.8-PC6苹果网
  6. java url 短链接_推荐几个官方腾讯短链接url接口(含PHP演示代码)
  7. 条码标签打印软件如何实现标签重复打印
  8. JavaScript是如何工作的:Web推送通知的机制
  9. 基于APPIUM的移动自动化测试
  10. ASP.NET中Url重写后,打不开真正的Html页面