随机访问类(RandomAccessFile)

2024-02-08 22:32

本文主要是介绍随机访问类(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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/692394

相关文章

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问