Java核心类库-IO-随机访问文件(RandomAccessFile)

随机访问文件:表示可以在该文件任何位置读取数据。

public class RandomAccessFileDemo
{
    public static void main(String[] args) throws Exception {
        File f = new File("raf.txt");
        //write(f);
        read(f);
    }

    private static void read(File f) throws Exception {
        //r表示只读
        RandomAccessFile raf = new RandomAccessFile(f,"r");
        System.out.println("文件指针位置:"+ raf.getFilePointer());//0
        byte b = raf.readByte();
        System.out.println(b);//64
        System.out.println("文件指针位置:"+ raf.getFilePointer());//1
        String str = raf.readUTF();
        System.out.println(str);//邓肯
        System.out.println("文件指针位置:"+ raf.getFilePointer());//9
        raf.seek(0);//设置文件指针位置
        System.out.println("文件指针位置:"+ raf.getFilePointer());//0
        raf.skipBytes(9);//设置文件指针跳过9个字节
        System.out.println("文件指针位置:"+ raf.getFilePointer());//9
        int i = raf.readInt();
        System.out.println(i);
        System.out.println("文件指针位置:"+ raf.getFilePointer());//13
        raf.close();
    }

    private static void write(File f) throws Exception {
        //rw表示读写
        RandomAccessFile raf = new RandomAccessFile(f,"rw");
        raf.writeByte(65);
        raf.writeUTF("邓肯");//使用的是修改之后的UTF-8,多两个字节
        raf.writeInt(20);
        raf.close();
    }
}

RandomAccessFile经常用来做多线程下载:

1. 多线程

2. 多点下载

时间: 2024-08-11 05:32:52

Java核心类库-IO-随机访问文件(RandomAccessFile)的相关文章

随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer

一.RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.但是该类仅限于操作文件. RandomAccessFile不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个类系

Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile

1. 随机访问流RandomAccessFile RandomAccessFile类不属于流,是Object类的子类.但它融合了InputStream和OutputStream的功能.支持对随机访问文件的读取和写入. RandomAccessFile的构造方法: 构造方法摘要 RandomAccessFile(File file, String mode)           创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定. RandomAccessFile(St

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

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

《七》随机访问文件流

1.什么是 随机访问文件流 RandomAccessFile? 该类的实例支持读取和写入随机访问文件. 随机访问文件的行为类似于存储在文件系统中的大量字节. 有一种游标,或索引到隐含的数组,称为文件指针 ; 输入操作读取从文件指针开始的字节,并使文件指针超过读取的字节. 如果在读/写模式下创建随机访问文件,则输出操作也可用; 输出操作从文件指针开始写入字节,并将文件指针提前到写入的字节. 写入隐式数组的当前端的输出操作会导致扩展数组. 文件指针可以通过读取getFilePointer方法和由设置

随机读写文件RandomAccessFile

RandomAccessFile类用于随机访问文件,自身具备读和写的方法,通过skipBytes(int x),seek(int x)方法来达到随机访问的目的. RandomAccessFile类的实例支持对随机访问文件的读取和写入. 随机访问文件的行为类似于存储在文件系统中的一个大型byte数组.存在指向隐函数组的光标或索引,称为文件指针. 该类不算是IO体系中的子类,因为该类直接继承自Object类,但是它是IO包中的成员,因为它具备读和写的功能.在内部封装了一个数组,而且通过指针对数组的元

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

RandomAccessFile类 /* * RandomAccessFile类,随机读写文件 * * 数据分段要有规律,每段大小相等,可以将每段数据设置为较大的值,足以存在每一个段的数据 * */ public class Test04 { public static void main(String[] args) throws IOException { //writeFile(); readFile(); } // 写入数据 public static void writeFile()

Java核心技术:随机访问文件

import java.io.*; import java.time.LocalDate; import java.util.Scanner; public class Test { public static void main(String[] args){ // TextFileTest.test(); RandomAccessTest.test(); } } class Employee { private String name; private double salary; priv

随机访问流 RandomAccessFile

RandomAccessFile不属于流,是Object的子类 但是它融合了InputStream和OutputStream的功能,支持对文件随机读取和写入 构造方法 public RandomAccessFile(String name,String mode):第一个参数是文件路径,第二个参数是操作文件的模式 模式有4种,但是最常用的"rw",这种方法表示既可以写数据,也可以输出数据 package cn.idcast; import java.io.IOException; im

java中的IO流之文件复制

O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的.上个图大家感受下: 简单分析一下,IO分为两种流:字符流和字节流.字符流的父类Reader(读取到内存)和Writer(从内存输出),字节流的父类InputStream(读取到内存)和OutputStream(从内存输出),然后为了方便各种操作,比如为了文件操作,派生了文件流:为了对象操作,派生了对象流:等等.当初我也是傻傻分不清到底是Inp