随机访问类(RandomAccessFile)
随机访问类(RandomAccessFile) 随机访问类(RandomAccessFile) - [] 输入流FileInputStream和输出流 FileOutputStream,实现的是对磁盘文件的顺序读写,而且读写要分别创建不同对象。相比之下RandomAccessFile类则可对文件实现随机读写操作。 RandomAccessFile对象的文件位置指针遵循下面的规律: ·新建RandomAccessFile对象的文件位置指针位于文件的开头处; ·每次读写操作之后,文件位置的指针都相应后移到读写的字节数; ·可以通过getFilePointer方法来获得文件位置指针的位置,通过seek方法来设置文件指针的位置。 如果某个文件有30个字节,读取数据过程中,从20-30读取,用skip( )//跳过方法,但在读取的过程中,前面的字节都被删除掉了,如果用户有这样的需求,先读取10-20字节,之后再读1-10之间的数,再20-30之间, java.io 随机访问文件类 RandomAccessFile java.io.RandomAccessFile 所有已实现的接口: Closeable, DataInput, DataOutput |0 ||10 ||20 ||30 | (指示器) RandomAccessFile常用方法: skipBytes(long i):从前往后拨弄指示器的位置,就是跳过多少个字节读取数据。 Void seek(long p): 对指示器作决定性的定位,用于从后往前拨弄指示器的位置。对于seek方法,拥有skipBytes( )的功能,但seek( )在使用过程非常影响系统的开销。只有万不得已的情况下使用。 例:seek(0) 指示器移到首部 RandomAccessFile类,即可以充当输入也可充当输出流。可以看作节点流。 构造方法: RandomAccessFile (”路径+文件名”, String“rw”/”r”)两个参数, //创建模式:“rw”代表写流,“r”代表读流, RandomAccessFile常用方法 Void close( ) Long length( ) Void seek( ) ##Long getFilePointer( )获得当前指针位置,默认为0 , Int read( )从文件当前位置读取一个字节 int read (byte[]b) int read (byte[]b,int off,int len) Final boolean readBoolean( )从文件当前位置读取boolean类型的一个字节 boolean在内存占1/8 Final char readChar( )从文件中读取2个字节。 Final int readInt( )从文件中读取4个字节。 ##Final String readLine( )从文件中读取一行后转为String。 Void write(byte[]b)将字节数组B中的数据写到文件中。 Void write(byte[]b,int off,int len)将 len 个字节从指定字节数组写入到此文件,并从偏移量 off 处开始。 Void write(int b)将指定的数据写到文件中。 Final void writeBoolean(boolean v)将boolean类型的值按单字节的形式写到文件中0或1 Final void writeChar(int v)将char值按2个字节写入到文件中 Final void writeChars(String s)将字符串按字符方式写入到文件中 Final void writeInt(int v)按四个字节将 int 写入该文件,先写高字节 Java代码 例:getFilePointer( ) import java.io.*; class df { public static void main(String args[])throws Exception { RandomAccessFile s=new RandomAccessFile("d:/tt.txt","rw"); System.out.println ( s.getFilePointer( ));//0 } } 例:getFilePointer( ) import java.io.*; class df { public static void main(String args[])throws Exception { RandomAccessFile s=new RandomAccessFile("d:/tt.txt","rw"); System.out.println ( s.getFilePointer( ));//0 } } 例: Java代码 import java.io.*; class RandomAccessFileDemo { public static void main(String args[])throws IOException { RandomAccessFile f=new RandomAccessFile("myfile","rw"); System.out.println ("File.lelngth:"+(f.length( ))+"B"); System.out.println ("File PointPosition:"+f.getFilePointer( )); f.seek(f.length( )); f.writeBoolean(true); f.writeBoolean(false); f.writeChar(’a’); f.writeChars("hello!"); System.out.println ("File Length;"+(f.length( ))+"B"); f.seek(0); System.out.println (f.readBoolean( )); System.out.println (f.readBoolean( )); //while(f.getFilePointer( )
随机访问类(RandomAccessFile)相关推荐
- IO之 随机访问文件(RandomAccessFile)
随机访问文件(RandomAccessFile): 表示可以在该文件的任何位置写出和读取数据. API中文解释: 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个 ...
- java 管道流PipedInputStream,PipedInputStream和随机访问文件 RandomAccessFile
http://blog.csdn.net/zlp1992/article/details/50298195 给个链接自己去看吧.网上资料不是很多,而且自己也不想写了 RandomAccessFil ...
- java随机访问流_java 随机读写访问流及seek方法
package stream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOExceptio ...
- Java基础(28)数据输入输出流、内存操作流、打印流、随机访问流、序列化与反序列化流、Properties类(集合)
1. 数据输入输出流 1. 数据输入输出流的概述: (1)以Stream结尾的,一般都是字节流 (2)数据输入流(DataInputStream):数据输入流允许应用程序以与机器无关方式从底层输入流中 ...
- 5.2 IO流(File类,Propertis配置文件,其他类(打印流,序列流,操作对象的流(序列化接口),随机访问文件的流,管道流,操作基本数据的流,操作数组的流,操作字符串的流),编码表)
1.File类 IO流的流对象只能操作设备上的数据.File类:1.用来将文件或者文件夹(也称目录)封装成对象. 2.方便对文件和文件夹的属性信息进行操作.(操作文件夹,文件的属性(创建时间,修改时间 ...
- JAVASE基础模块三十三(Scanner 扫描流 RandomAccessFile随机访问流 ObjectInputStream序列流 Properties集合流 Sequence顺序流
JAVASE基础模块三十三(Scanner 扫描流 RandomAccessFile随机访问流 ObjectInputStream序列流 Properties集合流 SequenceInputStre ...
- Java IO流之随机读写流RandomAccessFile
随机读写流RandomAccessFile 简介 此类的实例支持对随机访问文件的**读取和写入**.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引,称 ...
- 黑马程序员—————— 随机访问流
------- android培训.java培训.期待与您交流! ---------- RandomAccessFile是java输入/输出流体系中功能最丰富的问几十年内容访问类,它提供了众多的方法来 ...
- Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties...
你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新 ...
最新文章
- 《大数据、小数据、无数据:网络世界的数据学术》一 3.3 社会与技术
- 【Android 安全】DEX 加密 ( Application 替换 | 分析 Activity 组件中获取的 Application | ActivityThread | LoadedApk )
- 2019\Province_C_C++_B\试题A-组队
- Android EditText.setError() - 会弹出一个popupwindow,效果很好
- JS---------正则表达式
- DevOps vs Agile:有什么区别?
- 晨哥真有料丨太快得到是不是就不珍惜了?这锅,男生真的不背!
- 自动驾驶算法-滤波器系列(五)——高级运动模型在UKF中的应用
- Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-1-举例说明
- jQuery的回调支持
- 第一次面试总结--中国电子科学研究院
- spring源码-第七个后置处理器的使用
- log4cpp 使用完全手册
- E盾网络验证企业版个人版离线版防破解加密易语言源码加密对接好的自绘界面5
- 使用Python写一个m3u8多线程下载器
- 8700k超频测试软件,超频及功耗温度测试_Intel 酷睿i7 8700K_CPUCPU评测-中关村在线...
- msxml3.dll 错误 '80072efd' A connection with the server could not be established
- 在office中插入特殊符号方框带√
- 理解Anchor、RPN真值与预测量、RPN卷积网络
- 连接tcp服务器出现的问题及解决方法
热门文章
- android网络请求框架_2020,最新APP重构:网络请求框架
- 计算机组装与维修单元卷,计算机组装与维修期中考试试卷及答案
- android ui动画效果怎么做,AndroidUI 布局动画-为列表添加布局动画效果
- C语言中positive用法,sprintf - C语言库函数
- 历史有资产忘记折旧如何处理_紧急提醒! 500万以下固定资产一次性计入“管理费用”的,会计抓紧调账!...
- python中int表示的数据类型是_python中的基本数据类型之 int bool str
- 四年上册级计算机教学计划,小学数学四年级上册教学计划
- 计算机程序水仙花数,水仙花数
- 7-27 冒泡法排序 (C语言)
- 燃爆了!天猫联合天一广场搞事情,800万宁波人坐不住了