概述
randomAccessFile 类(随机访问) 对等长格式的记录 访问 有很大优势 如:学生成绩,员工信息。
两种构造方法: new randomAccessFile(file,"rw") // 可读写
new ramdomAccessFile(file,"r") // 只读
例子:
/**
* @author cui
* 定义员工信息
*/
public class Employee {
/**
* @param args
*
*/
public String name=null;
public int age=0;
public static final int LEN=8;
public Employee(String name,int age)
{
if(name.length()>LEN)
{
name=name.substring(0,LEN);
}
else
{
while (name.length() <LEN)
{
name += "/u0000";
}
}
this.name=name;
this.age=age;
}
}
import java.io.IOException;
import java.io.RandomAccessFile;
/**
*
*/
/**
* @author cui
* 存储读取员工信息
*
*/
public class randomFileTest {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Employee e1= new Employee("张三",21);
Employee e2= new Employee("李四",24);
Employee e3= new Employee("wangwu",27);
RandomAccessFile ra=new RandomAccessFile("employee.txt","rw");
ra.writeChars(e1.name); //writeChars 读取所有字符 用的unicode编码占2字节 所以 后面 读取跳过字节 乘2
// ra.write(e1.name.getBytes());
ra.writeInt(e1.age); //输入整数个字节
ra.writeChars(e2.name);
//ra.write(e2.name.getBytes());
ra.writeInt(e2.age);
ra.writeChars(e3.name);
// ra.write(e3.name.getBytes());
ra.writeInt(e3.age);
ra.close(); //关闭
// int len=0;
// byte[] buf= new byte[Employee.LEN];
String strName="";
RandomAccessFile raf =new RandomAccessFile("employee.txt","r");
raf.skipBytes(Employee.LEN*2+4); //skipBytes(N)跳转N位
for(int i=0;i<Employee.LEN;i++)
{
strName += raf.readChar(); //读取单个字节所以 循环
}
// len =raf.read(buf);
// strName = new String(buf,0,len);
System.out.println(strName.trim()+":"+raf.readInt());//读取整数个字节
strName="";
raf.seek(0); // 定位到某处
for(int i=0;i<Employee.LEN;i++)
{
strName += raf.readChar();
}
// len =raf.read(buf);
// strName =new String(buf,0,len);
System.out.println(strName.trim()+":"+raf.readInt());
strName="";
raf.skipBytes(Employee.LEN*2+4);
for(int i=0;i<Employee.LEN;i++)
{
strName += raf.readChar();
}
// len =raf.read(buf);
// strName =new String(buf,0,len);
System.out.println(strName.trim()+":"+raf.readInt());
raf.close();
//方法 trim() 去掉不可见字符
}
}
最后
以上就是曾经野狼为你收集整理的黑马程序员:java IO randomAccessFile类的全部内容,希望文章能够帮你解决黑马程序员:java IO randomAccessFile类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复