黑马程序员_IO输入与输出之RandomAccessFile类

本文介绍了Java中File类和RandomAccessFile类的基本用法,包括文件的创建、删除、重命名及随机访问文件的读写操作,并通过一个编程实例展示了如何利用RandomAccessFile类实现员工信息的写入与特定顺序读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-----------  android培训 java培训 、java学习型技术博客、期待与您交流! ------------


File类

                                                                                                                                   

1.  File类是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。

2.  File类定义了一些与平台无关的方法来操作文件,创建、删除文件和重命名文件。

3. Java中的目录被当作一种特殊的文件使用,list方法可以返回目录中的所有子目录和文件名。

4.  在Unix下的路径分隔符为(/),在Dos下的路径分隔符为(\),Java可以正确处理Unix和Dos的路径分隔符。

RandomAccessFile类

                                                                                                                                    

1.   此类的实例支持对随机访问文件的读取和写入。

2.   RandomAccessFile类提供了众多的文件访问方法。

3.   RandomAccessFile类支持“随机访问”方式。

4.   RandomAccessFile类在随机(相对顺序而言)读写等长记录格式的文件时有很大的优势。

5.   RandomAccessFile类公限于操作文件,不能访问其他的IO设备,如网络、内存映像等。

6.   两种构造方法:

         nNew RandomAccessFile(f,”rw”);//读写方式

         nNew RandomAccessFile(f,”r”);//只读方式

编程实例:往文件中写入三名员工的信息,每个员工含有姓名和年龄两个字段,然后按照第二名、等一名、第三名的先后顺序读出员工信息。

 

public class Employee

{

       public String name = "";

       public int age = 0;

       public static final int LEN = 8;     

       public Employee(String name, int age)

       {

              // TODO: Add your code here

              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.*;

public class TestRandomAccessFile

{

       public static void main(String[] args) throws Exception

       {

              // TODO: Add your code here

              Employee em1=new Employee("zhangsan",18);

              Employee em2=new Employee("李四",26);

              Employee em3=new Employee("wangwu",22);

             

              RandomAccessFile raf=new RandomAccessFile("employee.txt","rw");

              raf.writeChars(em1.name);

              raf.writeInt(em1.age);

              raf.writeChars(em2.name);

              raf.writeInt(em2.age);

              raf.writeChars(em3.name);

              raf.writeInt(em3.age);

             

              RandomAccessFile raf1=new RandomAccessFile("employee.txt","r");

              String strName="";

              raf1.skipBytes(Employee.LEN*2+4);

              for(int i=0;i<Employee.LEN;i++)

              {

                     strName+=raf1.readChar();

              }

              System.out.println(strName.trim()+":"+raf1.readInt());

             

              raf1.seek(0);

              strName="";

              for(int i=0;i<Employee.LEN;i++)

              {

                     strName+=raf1.readChar();

              }

              System.out.println(strName.trim()+":"+raf1.readInt());

             

              raf1.skipBytes(Employee.LEN*2+4);

              strName="";

              for(int i=0;i<Employee.LEN;i++)

              {

                     strName+=raf1.readChar();

              }

              System.out.println(strName.trim()+":"+raf1.readInt());

       }    

}

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.youkuaiyun.com/heima



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值