Java基础-IO流对象之随机访问文件(RandomAccessFile)

Posted 尹正杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础-IO流对象之随机访问文件(RandomAccessFile)相关的知识,希望对你有一定的参考价值。

            Java基础-IO流对象之随机访问文件(RandomAccessFile)

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.RandomAccessFile简介

  此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。

 

二.RandomAccessFile用法展示

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.note6;
 8 
 9 import java.io.RandomAccessFile;
10 
11 /*
12  * 
13  * RandomAccessFile(File file,String mode)
14  * RandomAccessFile(String name,String mode)
15  */
16 
17 
18 public class RandomAccessFileDemo {
19     public static void main(String[] args) throws Exception {
20         RandomAccessFile raf = new RandomAccessFile("yinzhengjie.txt", "rw");
21         //写入字节类型的数据
22         raf.write(97);    
23         //打印文件中当前光标位置
24         System.out.println(raf.getFilePointer());    
25         //写入int类型的数据
26         raf.writeInt(200);
27         System.out.println(raf.getFilePointer());    
28         //写入字符的数据
29         raf.writeUTF("hello");
30         System.out.println(raf.getFilePointer());    
31         raf.writeUTF("world");
32         System.out.println(raf.getFilePointer());
33         
34         //定位到字符串偏移量,如果是字符的话,需要移动的位置是2+字符长度。
35         raf.seek(12);
36         //读一个字符串
37         String s = raf.readUTF();
38         System.out.println(s);
39         System.out.println(raf.getFilePointer());
40         raf.close();
41     }
42 }
43 
44 /*
45 以上代码执行结果如下:
46 1
47 5
48 12
49 19
50 world
51 19
52 */

 

以上是关于Java基础-IO流对象之随机访问文件(RandomAccessFile)的主要内容,如果未能解决你的问题,请参考以下文章

Java之------IO基础到加强

Java基础IO流RandomAccessFile

Java基础之(IO流)

java基础之IO流

java基础之IO流

java 21 - 12 随机访问流(不属于IO流)