首页 > 技术文章 > Java 核心编程——文件随机读写类(RandomAccessFile)

wwyx-xi 2017-08-24 18:17 原文

1.RandomAccessFile

  RandomAccessFile主要用于文件内容的读写访问

2.访问模式

  “r”:只读方式。

  “rw”:打开以便读取和访问,如果文件不存在则创建文件。

  “rws”: 除了‘rw‘功能以外,文件内容或者元数据更新时一同写入。

  “rwd”:除了‘rw‘功能以外,文件内容更新时一同写入。

3.使用案例

package test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccess {
    
    
    public static void main(String[] args) {
        try {
            File file = new File("C:\\img\\666.txt");
            
            //打开文件
            RandomAccessFile randomAccess = new RandomAccessFile(file,"rwd"); //访问文件 
            Long lenth = randomAccess.length(); //获取文件长度
            System.out.println("lenth:"+lenth);
            randomAccess.seek(4); //设置指针位置
            
            //读取文件
            int c = randomAccess.read(); //读取一个字节
            System.out.println("c:"+c);
            System.out.println("c:"+(char)c); //转换为字符
            
            byte[] b = new byte[3]; //读取字节数字,创建数组
            randomAccess.read(b, 1, 2); //从指针1处读取两个字节写入数组b中
            String s = new String(b); //转换为字符串
            System.out.println("byte:"+s); //输出
            
            //写入文件
            File file2 = new File("C:\\img\\777.txt");
            if(!file2.getParentFile().exists()){
                file2.getParentFile().mkdirs();
            } 
            file2.createNewFile();
            RandomAccessFile randomAccess2 = new RandomAccessFile(file2,"rwd"); //访问文件 
            randomAccess2.write(b); //写入字符数组
            
            //关闭文件
            randomAccess.close();
            randomAccess2.close();
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }

}

 

推荐阅读