实现文件随机存/取操作

来源:互联网 发布:武术知乎 编辑:程序博客网 时间:2024/05/21 22:46
package io;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;/** * 实现文件随机存/取操作 * @author liuhuiyan * */public class TestRandomAccessFile {    private File  file = null;    public static void main(String[] args) {        TestRandomAccessFile traf = new TestRandomAccessFile();        traf.init();        traf.record("Billy",22);        traf.listAllRecords();    }    private void record(String record_breaker, int time) {        try {            RandomAccessFile raf = new RandomAccessFile(file, "rw");            boolean flag = false;            while(raf.getFilePointer()<raf.length()){                String name = raf.readUTF();                if (record_breaker.equals(name)) {                    raf.writeInt(time);                    flag=true;                    break;                }else {                    raf.skipBytes(4);                }            }            if (!flag) {                raf.writeUTF(record_breaker);                raf.writeInt(time);            }            raf.close();        } catch (IOException e) {            e.printStackTrace();        }    }    private void listAllRecords() {        RandomAccessFile raf;        try {            raf = new RandomAccessFile(file, "r");            while(raf.getFilePointer()<raf.length()){                String name= raf.readUTF();                int time = raf.readInt();                System.out.println("name: "+name+"\t record:"+time);            }            raf.close();        } catch (IOException e) {            e.printStackTrace();        }    }    private void init() {        if (file==null) {            file = new File("record.txt");            try {                file.createNewFile();            } catch (IOException e) {                e.printStackTrace();            }        }    }}
0 0
原创粉丝点击