第7讲 IO/输入与输出-RandomAccessFile类

第7讲 IO/输入与输出
·file类
·RandomAccessFile类
·各种节点流类
·各种过滤与包装类
·IO类的相关应用

File类
·File类是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容
·File类定义了一些与平台无关的方法来操纵文件,例如,创建、删除文件和重命名文件。
·Java中的目录被当做一种特殊的文件使用,list方法可以返回目录中的所有的子目录和文件名。
·在Unix下的路径分隔符为(/),在Dos下的路径分隔符为(/),Java可以正确处理Unix和Dos的路径分隔符。

编程举例:判断某个文件是否存在,存在则删除,不存在则创建。

import java.io.File ;
import java.io.IOException ;

File f = new File("d:"+File.separator+"newfile.txt"); 
if(f.exists())
{
 f.delete(); 
}else{
 try
 {
  f.createNewFile();
 }catch(IOException e){
  e.printStackTrace();
 }   
}

RandomAccessFile类
·RandomAccessFile类提供了众多的文件访问方法。
·RandomAccessFile类支持“随机访问”方式。
·RandomAccessFile类在随机(相对顺序而言)读写等长记录格式的文件时有很大偶的优势。
·RandomAccessFile类仅限于操作文件,不能访问其他的IO设备,如网络,内存映像等。
·两种构造方法:
 new RandomAccessFile(f,"rw");//读写方式
 new RandomAccessFile(f,"r");//只读方式

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

定义:
RandomAccessFile rsf = new RandomAccessFile(f,"rw");
写:
//在这里要注意的是英文字符与中文字符在本地转换成字节流的时候一个
//英文字符被转换成一个字节,而一个中文字符被转换成了两个字节,
//由于在java中的字符都是占2个字节的。这就导致了在存在中文的情况下的
//java对字符到字节的转换的时候,会导致转换过去的字节个数与字符个数是不对等的情况
//这里采用直接写入字符的形式来解决这个问题,rsf.writeChars(String s),此方法将字符
//串s中的每个字符都按照两个字节的形式转换写入到文件中,即直接写入字符
rsf.write(byte[] b)--将 b.length 个字节从指定 byte 数组写入到此文件,并从当前文件指针开始。
rsf.writeInt(int v)--按四个字节将 int 写入该文件,先写高字节。

读:
rsf.read(byte[] b)--将最多 b.length 个数据字节从此文件读入 byte 数组。
rsf.readInt()--从此文件读取一个有符号的 32 位整数。
rsf.readChar()--从文件读取一个字符

跳字节的方法
seek(long pos)--设置绝对偏移值,单位字节
skipBytes(int n)--指定当前位置的偏移节,单位字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值