Java IO: RandomAccessFile
转载自 Java IO: RandomAccessFile
译文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)
RandomAccessFile允许你来回读写文件,也可以替换文件中的某些部分。FileInputStream和FileOutputStream没有这样的功能。
创建一个RandomAccessFile
在使用RandomAccessFile之前,必须初始化它。这是例子:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
请注意构造函数的第二个参数:“rw”,表明你以读写方式打开文件。请查阅Java文档获知你需要以何种方式构造RandomAccessFile。
在RandomAccessFile中来回读写
在RandomAccessFile的某个位置读写之前,必须把文件指针指向该位置。通过seek()方法可以达到这一目标。可以通过调用getFilePointer()获得当前文件指针的位置。例子如下:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.seek(200);
long pointer = file.getFilePointer();
file.close();
读取RandomAccessFile
RandomAccessFile中的任何一个read()方法都可以读取RandomAccessFile的数据。例子如下:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
int aByte = file.read();
file.close();
read()方法返回当前RandomAccessFile实例的文件指针指向的位置中包含的字节内容。Java文档中遗漏了一点:read()方法在读取完一个字节之后,会自动把指针移动到下一个可读字节。这意味着使用者在调用完read()方法之后不需要手动移动文件指针。
写入RandomAccessFile
RandomAccessFile中的任何一个write()方法都可以往RandomAccessFile中写入数据。例子如下:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.write("Hello World".getBytes());
file.close();
与read()方法类似,write()方法在调用结束之后自动移动文件指针,所以你不需要频繁地把指针移动到下一个将要写入数据的位置。
RandomAccessFile异常处理
为了本篇内容清晰,暂时忽略RandomAccessFile异常处理的内容。RandomAccessFile与其他流一样,在使用完毕之后必须关闭。想要了解更多信息,请参考Java IO异常处理。
Java IO: RandomAccessFile相关推荐
- JAVA IO - RandomAccessFile Seek学习
2019独角兽企业重金招聘Python工程师标准>>> JAVA IO - RandomAccessFile Seek学习 import java.io.RandomAccessFi ...
- JAVA IO - RandomAccessFile
2019独角兽企业重金招聘Python工程师标准>>> RandomAccessFile The RandomAccessFile class in the Java IO API ...
- java urlconn 下载慢_使用HttpURLConnection下载文件时出现
java.io.FileNotFoundException彻底解决办法...
import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAc ...
- 五.Java IO、NIO、文件、通讯
2019独角兽企业重金招聘Python工程师标准>>> Java 的 I/O 大概可以分成四组: 基于字节操作的 I/O :InputStream 和 OutputStream 基于 ...
- Java.io包中常用的类
Java.io包 Java.io.BufferedInputStream类实例 Java.io.BufferedOutputStream类使用例子 Java.io.BufferedReader类 Ja ...
- 文件传输基础——Java IO流
一.文件的编码 1 package com.study.io; 2 3 4 /** 5 * 测试文件编码 6 */ 7 public class EncodeDemo { 8 9 /** 10 * @ ...
- 迁移学习 简而言之_简而言之Java.io:22个案例研究
迁移学习 简而言之 这篇文章试图涵盖java.io中的一整套操作. 与与此主题相关的其他书籍和博客相比,我的动机是通过案例研究来展示"操作方法". 曾经是Java的学生,我意识到学 ...
- 简而言之Java.io:22个案例研究
这篇文章试图涵盖java.io中的一整套操作. 与与此主题相关的其他书籍和博客相比,我的动机是通过案例研究展示"操作方法". 作为一名Java的学生,我意识到学习一种新的程序语言的 ...
- java.io.file.sync_Java(25)IO流和File类
IO流+File类 File类 讲IO流之前先来讲以下File类.Java的标准库Java.io提供了File类来操作文件和目录.操作可以有:新建.删除.重命名等,但是不能访问文件本身的内容,如果想要 ...
最新文章
- 标准化是RFID发展的必由之路
- 接口返回json对象出现套娃递归问题 | System.Text.Json 版本
- 液体火箭发动机技术国家级重点实验室2021年度对外开放项目指南
- 【网站】网站不能在QQ,微信中访问,申诉办法
- slf4j使用(二)
- java实现rabbitmq任务模型(work queues), 生产者 消费者 消息队列 能者多劳
- mount: RPC: Unable to receive; errno = Connection refused 的解决方法
- [Git] Squash all of my commits into a single one and merge into master
- 【原创】ESXI获取虚拟机的moid,并使用VMRC登录远程虚拟机
- android 飞行模式 配置 wifi可用,飞行模式下使用WiFi教程
- UFS 3.1协议分析(第一至四章) -- UFS概述
- 共用体union与枚举enum(C++)
- Android aab打包
- SAP采购订单价格与信息记录价格不匹配
- 爱剪辑 for Mac全能视频剪辑软件
- 流媒体高清视频校园直播点播
- TP5生成二维码教程
- 一键屏蔽百度热搜,专注工作!
- 计算机专业的创意文案,高考借势广告文案又双叒叕来了,这些借势扎心了!
- 邻接矩阵/图/DFS/BFS
热门文章
- 7-9 删数问题 (10 分)(思路加详解)
- [MyBatisPlus]模拟多数据源环境及测试
- [Java基础]IO流小结
- [蓝桥杯][历届试题]网络寻路-dfs,图的遍历
- C++实现链式存储线索二叉树
- 第二个一千行总结-数据结构C复习--知识点总结2--五到七章
- SpringMVC 、Struts的区别
- 采蘑菇的克拉莉丝(树链剖分)
- CF1000G. Two-Paths(树形dp)
- LCS(2021牛客多校4)