• JAVA_RandomAccess类操作


    package com.kk.review;

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

    public class RandomAcessFileTest {
    public static void main(String[] args) {
    try {
    RandomAccessFile file=new RandomAccessFile("a.txt","rw"); //rw:读写
    Student kk=new Student("kk",'男',22);
    kk.write(file);
    file.seek(0);//将指定位到文件开始位置
    kk.read(file);
    kk.toString();
    file.seek(0);
    kk.readByPointer(file);//根据filePointer遍历文件模式
    file.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    class Student {
    String name;

    char gender;

    int age;

    public Student() {
    }

    void write(RandomAccessFile file) throws IOException {
    file.writeUTF(this.getName());
    file.writeChar(this.getGender());
    file.writeInt(this.getAge());
    }

    void read(RandomAccessFile file) throws IOException {
    this.setName(file.readUTF());
    this.setGender(file.readChar());
    this.setAge(file.readInt());
    }

    /**
    * 根据file.getFilePointer循环读取
    *
    @param file
    *
    @throws IOException
    */
    void readByPointer(RandomAccessFile file)throws IOException{
    for (long i = 0; i < file.length(); i=file.getFilePointer()) {
    System.out.println(file.readUTF());
    System.out.println(file.readChar());
    System.out.println(file.readInt());
    }
    }

    @Override
    public String toString() {
    System.out.println("name:".concat(getName()).concat("\rgender:")
    .concat(getGender() + "\r").concat("age:").concat(
    getAge() + "\r"));
    return null;
    }

    public Student(String name, char gender, int age) {
    this.name = name;
    this.gender = gender;
    this.age = age;
    }

    public int getAge() {
    return age;
    }

    public void setAge(int age) {
    this.age = age;
    }

    public char getGender() {
    return gender;
    }

    public void setGender(char gender) {
    this.gender = gender;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    }
  • 相关阅读:
    紫书 例题8-6 UVa 1606(扫描法)
    紫书 例题8-5 UVa11054(等价转换)
    紫书 例题8-4 UVa 11134(问题分解 + 贪心)
    紫书 例题8-3 UVa 1152(中途相遇法)
    紫书 例题8-2 UVa 11605(构造法)
    Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0
    2016ACM/ICPC亚洲区沈阳站
    Tenka1 Programmer Contest D
    [Gym-101512C] 凸包+最远点对
    ZOJ
  • 原文地址:https://www.cnblogs.com/BigIdiot/p/2282353.html
Copyright © 2020-2023  润新知