IO流(RandomAccessFile随机访问流)
并不是实际意义上的流
类的实例支持对随机访问文件的读取和写入融合了InputStream和OutputStream两个类
构造方法:
public RandomAccessFile(String name,String mode):
mode:里面的模式:只记住:常用的就:rw:既可以读,也可以写
常用方法:
public long getFilePointer(),返回此文件的偏移量
public void seek(long pos)throws IOException设置到此文件开头测量到的文件指针偏移量
代码:
public static void main(String args[]) throws IOException{
Write();
read();
}
private static void read() throws IOException {
创建随机访问流对象
RandomAccessFile raf = new RandomAccessFile(“raf.txt”, “rw”) ;
byte b = raf.readByte() ;
System.out.println(b);
//public long getFilePointer(),返回此文件的偏移量
System.out.println("当前指针的移到的位置是:"+raf.getFilePointer());
char ch = raf.readChar();
System.out.println(ch);
System.out.println("当前指针的移到的位置是:"+raf.getFilePointer());
String s = raf.readUTF() ;
System.out.println(s);
// System.out.println(“当前指针的移到的位置是:”+raf.getFilePointer());
// public void seek(long pos)
// throws IOException设置到此文件开头测量到的文件指针偏移量
// //现在想从字符A开始
raf.seek(3);
ch = raf.readChar() ;
System.out.println(ch);
//关闭资源
raf.close();
}
//随机访问流写数据
private static void Write() throws IOException {
//创建随机访问流对象
RandomAccessFile raf = new RandomAccessFile("raf.txt", "rw") ;
//写数据:
raf.writeByte(100);
raf.writeChar('A');
raf.writeUTF("中国");
//关闭资源
raf.close();
}