随机访问类(RandomAccessFile)

IO流-RandomAccessFile/文件随机访问类详解 构造函数: **RandomAccessFile(File file, String mode):**创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定。 **RandomAccessFile(String name, String mode) 阅读详情
随机访问类(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代码   收藏代码
  1. 例:getFilePointer( )   
  2. import java.io.*;   
  3.     
  4. class df   
  5. {   
  6.                               public static void main(String args[])throws Exception   
  7.                               {   
  8.                                   RandomAccessFile s=new RandomAccessFile("d:/tt.txt","rw");   
  9.                                  System.out.println ( s.getFilePointer( ));//0   
  10.                               }   
  11. }   
  12.                 
                                                                    
例:
Java代码   收藏代码
  1.      import java.io.*;   
  2.    class RandomAccessFileDemo   
  3. {   
  4.                                
  5.   
  6.  public static void main(String args[])throws IOException   
  7.                                
  8.  {   
  9.   
  10.             RandomAccessFile f=new RandomAccessFile("myfile","rw");   
  11.             System.out.println ("File.lelngth:"+(f.length( ))+"B");   
  12.             System.out.println ("File PointPosition:"+f.getFilePointer( ));   
  13.             f.seek(f.length( ));   
  14.             f.writeBoolean(true);   
  15.              f.writeBoolean(false);   
  16.             f.writeChar(’a’);   
  17.             f.writeChars("hello!");   
  18.             System.out.println ("File Length;"+(f.length( ))+"B");  
  19.   
  20.              f.seek(0);   
  21.              System.out.println (f.readBoolean( ));   
  22.              System.out.println (f.readBoolean( ));   
  23.                //while(f.getFilePointer( )<f.length( ));??   
  24.               System.out.println (f.readLine( ));   
  25.                f.close( );   
  26.                               }}   





本文来自: 中国自学 
编程网(www.zxbc.cn) 详细出处参考:http://www.zxbc.cn/html/javajc/1310230332783_2.html 
使用RandomAccessFile流将一个文本文件读出,并导致写入到另一个文件当中。 立即下载

相关推荐

CAN开发笔记(TI开发者推荐笔记)

查阅了很多资料没有查阅到关于5728芯片CAN模块寄存器的介绍,希望通过本文能给做CAN驱动的后来者有一点参考意义,我也是刚接触CAN模块有些不足请各位多多指正。 由下图所示是CAN模块初始化流程图 首先要开始初始化,设置CAN位时间,然后配置message objects, 完成初始化。 1.开始初始化 首先要控制DCAN_CTL 寄存器,该寄存器是CAN模块的总控制器,很多配置通过...

weixin_44316996的博客 3562

java读取linux文件_Java文件定位读取

1. 使用RandomAccessFile对象的seek函数来实现public void seek(long pos) throws IOExceptionRandomAccessFile randomAccessFile = newRandomAccessFile ("./chanel.txt", "r"); // Set the file position 离文件起始位置10字节处random...

weixin_32491317的博客 640

FoundationPose 4090部署 真实场景迁移

复现并应用foundationpose

m0_52835296的博客 613

RandomAccessFile详解

RandomAccessFile是Java 输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持"随机访问"的方式,程序可以直接跳转到文件的任意地方来读写数据。 RandomAccessFile可以自由访问文件的任意位置。 RandomAccessFile允许自由定位文件记录指针。 RandomAccessFile只能读写文件而不是流。 ...

qq_40100414的博客 3万+

避坑指南:vmdk转qcow2镜像时你可能会遇到的5个问题及解决方法

本文详细解析了将VMDK虚拟机镜像转换为QCOW2格式时可能遇到的五大核心问题,特别是启动失败的常见原因及解决方案。内容涵盖格式差异、预处理优化、转换命令详解,并针对根文件系统挂载失败、GRUB引导失败、网卡识别、性能异常等典型故障提供了具体排查与修复步骤,旨在帮助运维人员高效、可靠地完成镜像迁移。

websocket5live的博客 275

复现基于混频因子模型的GDP即时预测方法

基于混频因子模型的GDP即时预测方法复现 本文复现了混频因子模型(MIDAS)在GDP即时预测中的应用。该方法整合7个月度宏观经济变量(工业增加值、CPI、PMI等)与季度GDP数据,通过状态空间模型实现高频预测。技术实现包括:1)使用PCA提取潜在共同因子;2)构建状态空间模型处理混频数据;3)通过卡尔曼滤波进行参数估计。实证结果显示模型预测效果良好(测试集R²=0.82),其中工业增加值对因子1贡献最大(0.82),CPI对因子2贡献显著(0.78)。该方法为决策者提供了更及时的季度GDP估算。

huanghm88的专栏 601

Java IO——RandomAccessFile类详解

一、RandomAccessFile介绍 RandomAccessFile支持对文件的读取和写入随机访问(其他的输入流或者输出流只能进行一种操作,要么输入,要么输出)。RandomAccessFile把随机访问的文件对象看作存储在文件系统中的一个大型 byte 数组,然后通过指向该 byte 数组的光标或索引(即:文件指针 FilePointer)在该数组任意位置读取或写入任意数据。输入操作从文件指针开始读取字节(以字节为单位进行读取),并随着对字节的读取而前移此文件指针。如果RandomAccessFi

b15735105314的博客 2万+

074.多任务学习:在YOLO基础上同时进行分割、关键点检测

本文探讨了在YOLOv5模型中实现检测、分割和关键点多任务的技术方案。通过分层特征抽取策略(检测用深层、分割用浅深融合、关键点用中层)解决特征共享问题;采用不确定性加权方法自动平衡多任务损失;设计了支持三种标签的数据流处理方式;并分享了推理部署时的后处理技巧。实践表明,合理的多任务设计可以提升主任务性能,但需权衡标注成本和推理效率。最终方案选择在训练时引入分割作为辅助任务,推理时仅保留检测和关键点,实现了检测mAP提升2.3%的优化效果。

2603_95664987的博客 45

RandomAccessFile类使用详解(转)

1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容,也可以向文件中写入内容。但是和其他输入/输入流不同的是,程序可以直接跳到文件的任意位置来读写数据。   因为RandomAccessFile可以自由访问文件的任意位置,所以如果我们希望只访问文件的部分内容,那就可以使用RandomAccessFile类。   与OutputStearm,Writer等输出流不同的是,RandomAccessFile类允许自由定位文件

weixin_46875212的博客 1754

基于Simulink的无迹卡尔曼滤波(UKF)SOC高精度估计仿真

本文介绍了基于Simulink的无迹卡尔曼滤波(UKF)在电池SOC高精度估计中的应用。通过无迹变换替代传统EKF的线性化过程,UKF显著提升了SOC估计精度,在强非线性工况下误差可控制在0.5%以内。文章详细阐述了UKF的核心原理,包括Sigma点生成、状态预测和观测更新等关键步骤,并基于Thevenin等效电路模型构建了完整的UKF SOC估算系统。通过Simulink建模和仿真验证,展示了UKF在大电流脉冲、变温工况等复杂场景下的优异性能,其动态响应时间小于30ms,长期累积误差低于0.7%。研究为储

amy_mhd的博客 124

AI颠覆市场调研:生成式智能体如何重构商业决策?

AI正在将市场调研从"成本中心"转变为"战略武器"。当企业能够用生成式智能体实时模拟百万级虚拟用户时,传统调研的样本偏差、时间滞后、成本高昂等问题将不复存在。对于开发者而言,这不仅是技术的狂欢,更是参与商业规则重构的历史机遇。行动建议立即体验Simile/Aaru的智能体平台,验证虚拟样本效果参与LLM持续性记忆架构的开源项目(如Memory Llama)关注AI调研API的标准化进程(如Hugging Face的Market Research Toolkit)

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 614

数据结构随机访问

通常,随机访问适用于具有常数时间复杂度的数据结构,例如数组或连续内存块。由于元素在内存中的存储位置相邻,我们可以通过计算偏移量,直接访问指定位置的元素。这种访问方式效率高,无论元素数量多少,访问时间都保持不变。相反,对于一些非随机访问的数据结构,例如链表,我们需要从头节点开始依次遍历,直到找到目标位置。这种顺序访问的时间复杂度通常与元素数量成正比,效率较低。因此,随机访问的优点在于能够立即获取特定位置的元素,无需遍历整个数据结构。随机访问是指可以直接访问任意位置或元素的能力,而不受顺序或位置的限制。

zaizai030的博客 1725

汇川H5U PLC 实现直线插补、圆弧插补、直线圆弧混合连续插补

使用汇川H5UPLC实现直线插补,圆弧插补,直线圆弧混合路径插补,通过示教可以走出复杂的路径,仅供参考学习。

weixin_39832501的博客 4783

Java 文件随机访问类-RandomAccessFile

文件访问类:RandomAccessFile类特性:支持“随机访问”可以跳转到任意位置进行读写。通过文件指示器可以指定位置进行读写。实际应用:断点续传。多线程下载。优势:在随机读写等长记录格式的文件有很大优势。缺陷:仅限于操作文件,不能访问其他IO设备。rw//读写 r//只读DEMO:import java.io.*; public class RandomFileTest{ public static void main(String[] args) throws Exception{  Employe

xxs1984的专栏 3511

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java RandomAccessFile随机访问类

Java RandomAccessFile随机访问类介绍Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何位置。RandomAccessFile的对象包含一个记录指针,用于标识当前流的读写位置,这个位置可以向前移动,也可以向后移动。RandomAccessFile类最大的特点在于其具有可读与可写的功能并

小白成长记录 979

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IO随机访问类——RandomAccessFile

一、随机访问类RandomAccessFile

Jewel’s blog 568

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java IO RandomAccessFile 类随机访问流的使用细节详解

Java IO RandomAccessFile 类随机访问的使用1. RandomAccessFile2.demo1.RandomAccessFile 实现读和写2.RandomAccessFile 实现插入效果2.RandomAccessFile 更为通用的插入实现 1. RandomAccessFile RandomAccessFile 类支持 “随机访问” 的方式,程序可以直接跳到文件...

码农回顾 519

18、java随机访问RandomAccessFile类

[code="java"] package com.tij.io.file; import java.io.IOException; import java.io.RandomAccessFile; /** * 随机访问文件 * @author GYJ * @date 2014-3-22 */ public class RandomAccessFileExampl...

iteye_1043的博客 168

Java随机访问RandomAccessFile类

Java的RandomAccessFile类构造函数参数介绍 构造函数 例: File file=new File("path"); RandomAccessFile in=new RandomAccessFile(file,"rw"); //"rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。 参数介绍 除了“rw”以外还有: "r" Open for rea...

学习使我快乐_玉祥 250

Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

1.JDK API中RandomAccessFile类的描述 此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操...

weixin_30703911的博客 436

Java randomaccess追加,Java中RandomAccessFile类如何随机访问

1、过程(1)既可以充当一个输入流, 也可以冲淡一个输出流(2)支持从文件的开头读取、写入(3)支持从任意位置的读取、写入(插入)(4)RandomAccessFile类需要指定的访问模式:2、实例publicvoidRandomAccessFile(Stringsrc,StringsrcMode,Stringdest,StringdestMode){RandomAccessF...

weixin_36085931的博客 132

随机访问类(RandomAccessFile)

输入流FileInputStream和输出流 FileOutputStream,实现的是对磁盘文件的顺序读写,而且读写要分别创建不同对象。相比之下RandomAccessFile类则可对文件实现随机读写操作。RandomAccessFile对象的文件位置指针遵循下面的规律:·新建RandomAccessFile对象的文件位置指针位于文件的开头处;·每次读写操作之后,文件位置的指针都相应

Blurxx | 与 java 共舞 969

java randomaccessfile seek与skipbytes,java RandomAccessFile类(随机访问文件)

该类可以实现对同一个文件的读写操作,与其他IO流不同的是可以指定读写指针的脚标(seek),有跳过指定个数字节(skipBytes)操作。另外该类也可用于断点续传。简单示例如下:import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;public class Ra...

weixin_35160938的博客 581
上一篇: file的getPath getAbsolutePath和getCanonicalPath的不同
下一篇: Android 之采用execSQL和rawQuery方法完成数据的添删改查操作
mywebstudy
博客等级 码龄15年 30粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值