您的位置:首页 > 编程语言 > Java开发

java io之RandomAccessFile的用法

2012-10-16 10:37 323 查看
Employee.java
1 package com.io;

public class Employee {

private String name;

private int age;

private static final int LEN = 8;

public Employee(String name, int age) {
super();
if (name.length() > LEN) {
name = name.substring(0, LEN);
} else {
while (name.length()<LEN) {
name += "\u0000";
}
}
this.age = age;
this.name = name;
}

public String getName() {
return name;
}

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

public int getAge() {
return age;
}

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

}


RamdomFileTest.java

package com.io;

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

public class RamdomFileTest {

public static void main(String[] args) throws IOException {
Employee e1 = new Employee("zhangsan",23);
Employee e2 = new Employee("lisi",24);
Employee e3 = new Employee("wangwu",25);

RandomAccessFile ra = new RandomAccessFile("f:\\1.txt","rw");
ra.write(e1.getName().getBytes());
ra.writeInt(e1.getAge());
ra.write(e2.getName().getBytes());
ra.writeInt(e2.getAge());
ra.write(e3.getName().getBytes());
ra.writeInt(e3.getAge());
ra.close();

RandomAccessFile raf = new RandomAccessFile("f:\\1.txt","r");
int len = 8;
raf.skipBytes(12);
System.out.println("第二个员工的信息:");
String str = "";
for (int i = 0; i < len; i++) {
str = str+ (char)raf.readByte();
}
System.out.println("name:"+str);
System.out.println("age:"+raf.readInt());

System.out.println("第一个员工的信息:");
raf.seek(0);
str = "";
for (int i = 0; i < len; i++) {
str = str + (char)raf.readByte();
}
System.out.println("name:"+str);
System.out.println("age:"+raf.readInt());

System.out.println("第三个员工的信息:");
raf.skipBytes(12);
str = "";
for (int i = 0; i < len; i++) {
str = str + (char)raf.readByte();
}
System.out.println("name:"+str);
System.out.println("age:"+raf.readInt());

System.out.println("程序执行完毕...");
}
}


打印结果:

第二个员工的信息:
name:lisi

age:24
第一个员工的信息:

name:zhangsan
age:23
第三个员工的信息:
name:wangwu

age:25
程序执行完毕...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: