学习笔记,转正:https://blog.csdn.net/nightcurtis/article/details/51384126
RandomAccessFile类使用详解
疯狂java讲义读书笔记之RandomAccessFile类的使用详解
1.RandomAccessFile特点
RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容,也可以向文件中写入内容。但是和其他输入/输入流不同的是,程序可以直接跳到文件的任意位置来读写数据。
因为RandomAccessFile可以自由访问文件的任意位置,所以如果我们希望只访问文件的部分内容,那就可以使用RandomAccessFile类。
与OutputStearm,Writer等输出流不同的是,RandomAccessFile类允许自由定位文件记录指针,所以RandomAccessFile可以不从文件开始的地方进行输出,所以RandomAccessFile可以向已存在的文件后追加内容。则应该使用RandomAccessFile。
2.RandomAccessFile的整体介绍
RandomAccessFile类包含了一个记录指针,用以标识当前读写处的位置,当程序新创建一个RandomAccessFile对象时,该对象的文件记录指针位于文件头(也就是0处),当读/写了n个字节后,文件记录指针将会向后移动n个字节。除此之外,RandomAccessFile可以自由的移动记录指针,即可以向前移动,也可以向后移动。RandomAccessFile包含了以下两个方法来操作文件的记录指针.
- long getFilePointer(); 返回文件记录指针的当前位置
- void seek(long pos); 将文件记录指针定位到pos位置
RandomAccessFile即可以读文件,也可以写,所以它即包含了完全类似于InputStream的3个read()方法,其用法和InputStream的3个read()方法完全一样;也包含了完全类似于OutputStream的3个write()方法,其用法和OutputStream的3个Writer()方法完全一样。除此之外,RandomAccessFile还包含了一系类的readXXX()和writeXXX()方法来完成输入和输出。
RandomAccessFile有两个构造器,其实这两个构造器基本相同,只是指定文件的形式不同而已,一个使用String参数来指定文件名,一个使用File参数来指定文件本身。除此之外,创建RandomAccessFile对象还需要指定一个mode参数。该参数指定RandomAccessFile的访问模式,有以下4个值:
- “r” 以只读方式来打开指定文件夹。如果试图对该RandomAccessFile执行写入方法,都将抛出IOException异常。
- “rw” 以读,写方式打开指定文件。如果该文件尚不存在,则试图创建该文件。
- “rws” 以读,写方式打开指定文件。相对于”rw” 模式,还要求对文件内容或元数据的每个更新都同步写入到底层设备。
- “rwd” 以读,写方式打开指定文件。相对于”rw” 模式,还要求对文件内容每个更新都同步写入到底层设备。
3.使用RandomAccessFile实现从指定位置读取文件的功能
在上面的程序的关键代码两处,一处是创建了RandomAccessFile对象,该对象以只读模式打开了Test.txt文件,这意味着RandomAccessFile文件只能读取文件内容,不能执行写入。第二处调用了seek(1000)方法,是指把文件的记录指针定位到1000字节的位置。也就是说程序将从1000字节开始读取数据。其他部分的代码的读取方式和其他的输入流没有区别。
4.使用RandomAccessFile实现向文件中追加内容的功能
相关推荐
少儿编程scratch项目源代码文件案例素材-足球物理学.zip
scratch少儿编程逻辑思维游戏源码-走出垃圾桶 第二部分.zip
scratch少儿编程逻辑思维游戏源码-正在开发中.zip
【智能设备】超轻量级AR眼镜设计方案
scratch少儿编程逻辑思维游戏源码-战斗.zip
少儿编程scratch项目源代码文件案例素材-子弹冲刺 v2.zip
scratch少儿编程逻辑思维游戏源码-小鸡跳.zip
内容概要:本文详细介绍了利用Stanley算法在CarSim和Simulink平台上实现自动驾驶车辆的轨迹跟随和车道保持功能。文章首先解释了Stanley算法的核心思想及其公式,接着展示了如何在Simulink中具体实现该算法,包括横向误差计算、前馈控制以及方向盘转角限制等关键技术环节。同时,文中还讨论了联合仿真过程中遇到的各种挑战及解决方案,如坐标系对齐、信号同步等问题,并提供了详细的代码片段和调试技巧。最终,通过一系列实验验证了该模型的有效性和鲁棒性。 适用人群:从事自动驾驶技术研发的工程师和技术爱好者,尤其是对横向控制算法感兴趣的读者。 使用场景及目标:适用于希望深入了解并掌握Stanley算法在自动驾驶中的应用,以及希望通过CarSim和Simulink平台搭建和优化自动驾驶仿真系统的专业人士。 其他说明:文章不仅提供了理论解析,还包括大量实用的操作指南和实践经验分享,有助于读者快速上手并在实践中不断改进和完善自己的项目。
实训商业源码-导航-毕业设计.zip
scratch少儿编程逻辑思维游戏源码-以太.zip
内容概要:本文介绍了一种用于光伏系统的新型最大功率点跟踪(MPPT)策略及其MATLAB仿真模型。该策略结合了大步长扰动和模糊控制的优点,通过分段策略切换实现动态响应速度快和稳态精度高的特点。具体来说,在动态阶段采用大步长扰动以快速逼近最大功率点,而在稳态阶段则切换到模糊控制以确保高精度。文中详细展示了如何构建模糊推理系统(FIS),并提供了完整的MATLAB代码示例,包括状态切换逻辑、步长自适应调整以及模糊规则库的设计。 适合人群:从事光伏系统研究的技术人员、高校师生及相关领域的科研工作者。 使用场景及目标:适用于需要优化光伏系统能量转换效率的研究项目,旨在提高MPPT算法在不同光照条件下对最大功率点的跟踪能力。 其他说明:文中不仅讨论了理论概念,还给出了详细的代码实现步骤,便于读者理解和应用。此外,作者还分享了一些实践经验,如通过引入随机噪声来模拟真实环境的影响,进一步验证了所提方法的有效性和鲁棒性。
半闭环数控车床液压传动与控制设计.rar
scratch少儿编程逻辑思维游戏源码-烟花.zip
小米路由器,救砖资料 官方资料
内容概要:本文详细介绍了三相异步电机矢量控制调速系统的Simulink仿真及其MATLAB建模方法。首先,文章解释了三相异步电机的基本特点以及矢量控制技术的优势,尤其是磁场定向控制(FOC)。接下来,逐步讲解了如何在Simulink中搭建仿真模型,包括电源模块、异步电机模块的参数设置,以及坐标变换(如Clark变换和Park变换)的具体实现。文中还探讨了电流环控制、矢量解耦控制、PI调节器参数设置、SVPWM模块的死区补偿、转速观测器的设计等关键技术细节。通过不断调整模型参数,可以深入研究系统的性能,为实际电机控制应用提供理论支持和实践指导。 适合人群:电机控制系统工程师、自动化专业学生、科研人员。 使用场景及目标:适用于希望深入了解三相异步电机矢量控制原理和技术实现的研究者和工程师。目标是掌握Simulink仿真的具体操作步骤,理解各个模块的功能和相互关系,从而能够在实际项目中应用这些技术和方法。 其他说明:文章不仅提供了详细的理论背景介绍,还包括了许多实用的代码片段和调试技巧,帮助读者更好地理解和应用矢量控制技术。
应用多元回归方程进行客运量预测的源代码
少儿编程scratch项目源代码文件案例素材-追逐游戏.zip
X52K数控铣床改造纵向进给机构CAD装配图.rar
实训商业源码-叮咚-外卖餐饮小程序6.1.7+跑腿小程序+前端-毕业设计.zip
SQL语言教程&案例&相关项目资源,