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学习型技术博客、期待与您交流! ----------------------
详情请查看: