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();
}
}
}
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();
}
}
}