随机访问文件 自身具备读写 的RandomAccessFile

package com.huyd.day20;


import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;


public class RanbleAccessFileDemo {


/**
* @param args

* 该类不算是IO体系中的子类
* 而是直接继承Object
* 但是它是IO中成员,因为具备读和写功能
* 内部封装了一个数组,而是通过指针对数组的元素进行操作
* 可以通过getFilePointer获取指针位置
* 同时可以通过改变指针位置


* 其实完成读写的原理就是内部封装了字节输入流和输出流
* 通过构造函数可以看出,该类只能操作文件
* 而且操作文件还有模式:只读 ‘r’ 读写rw等

* 如果模式为只读 r 不会创建文件,会去读取一个已存在的文件,如果不存在就会出现异常
* 如果模式为rw 操作的文件不存在,会自动创建,如果存在则不会覆盖 



*/
public static void main(String[] args) {
//write1();
//write2();
readfile();
}


public static void readfile(){
try {
RandomAccessFile raf=new RandomAccessFile("ran.txt", "rw");
byte [] b=new byte [4];
try {
//raf.seek(8);
raf.read(b);
String name =new String (b,0,b.length);
int age=raf.readInt();
System.out.println(name);
System.out.println(age);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void write2(){
try {
RandomAccessFile raf=new RandomAccessFile("ran.txt", "rw");
try {
raf.skipBytes(8*3);
raf.write("周六".getBytes());
raf.writeInt(98);


raf.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}



}

public static void write1(){
try {
RandomAccessFile raf=new RandomAccessFile("ran.txt", "rw");
try {
raf.write("李是".getBytes());
raf.writeInt(98);
raf.write("王五".getBytes());
raf.writeInt(79);
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}



}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值