Java温故而知新-RandomAccessFile

文件组成

在这里插入图片描述
在这里插入图片描述

RandomAccessFile常用方法

在这里插入图片描述
在这里插入图片描述

范例:实现随机写入

package com.itkey.javareview.温故知新.io;

import lombok.SneakyThrows;

import java.io.File;
import java.io.RandomAccessFile;
import java.nio.charset.StandardCharsets;

public class RandomAccessFileDemo {
    
    
    public static final int MAX_LENGTH =8;

    @SneakyThrows
    public static void main(String[] args) {
    
    
        File file = new File("/Users/itkey/Documents/GitHub/java-review/src/main/java/com/itkey/javareview/温故知新/io" + File.separator + "yootk.data");
        if(!file.getParentFile().exists()){
    
    
            file.getParentFile().mkdirs();
        }
        RandomAccessFile raf = new RandomAccessFile(file,"rw");

        String names[] = new String[] {
    
    "zhangsan","lisi","wangwu","zhaoliu","sunqi"};
        int ages[] = new int[] {
    
    12,13,17,16,15};
        int i = 0;
        for (String name : names) {
    
    
            name =  addSpace(name);
            raf.write(name.getBytes(StandardCharsets.UTF_8));
            raf.writeInt(ages[i]);
            i++;
        }
        raf.close();
    }

    /**
     * 字符过短,补空格
     * @param str
     * @return
     */
    public static String addSpace(String str){
    
    
        StringBuffer stringBuffer = new StringBuffer(str);
        while (stringBuffer.length()<MAX_LENGTH){
    
    
            stringBuffer.append(" ");
        }
        return stringBuffer.toString();
    }

}

读取二进制的随机文件

在这里插入图片描述

package com.itkey.javareview.温故知新.io;

import lombok.SneakyThrows;

import java.io.File;
import java.io.RandomAccessFile;
import java.nio.charset.StandardCharsets;

public class RandomAccessFile生成二进制文件 {
    
    
    public static final int MAX_LENGTH =8;

    @SneakyThrows
    public static void main(String[] args) {
    
    
        File file = new File("/Users/itkey/Documents/GitHub/java-review/src/main/java/com/itkey/javareview/温故知新/io" + File.separator + "yootk.data");
        if(!file.getParentFile().exists()){
    
    
            file.getParentFile().mkdirs();
        }
        RandomAccessFile raf = new RandomAccessFile(file,"rw");

        String names[] = new String[] {
    
    "zhangsan","lisi","wangwu","zhaoliu","sunqi"};
        int ages[] = new int[] {
    
    12,13,17,16,15};
        int i = 0;
        for (String name : names) {
    
    
            name =  addSpace(name);
            raf.write(name.getBytes(StandardCharsets.UTF_8));
            raf.writeInt(ages[i]);
            i++;
        }
        raf.close();
    }

    /**
     * 字符过短,补空格
     * @param str
     * @return
     */
    public static String addSpace(String str){
    
    
        StringBuffer stringBuffer = new StringBuffer(str);
        while (stringBuffer.length()<MAX_LENGTH){
    
    
            stringBuffer.append(" ");
        }
        return stringBuffer.toString();
    }

}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lxyoucan/article/details/114871968