我是靠谱客的博主 曾经野狼,最近开发中收集的这篇文章主要介绍黑马程序员:java IO randomAccessFile类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  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类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部