java 从零开始,学习笔记之基础入门<IO流>(十八)(四)
mo {
/*RandomAccessFile类是一个随机访问流,它可以用来访问一个文件中
*任意指定的地方
*
* 提供了连个构造器
* RandomAccessFile(File file,String mode)
* RandomAccessFile(String name, String mode)
* mode 表示的是对文件的一种模式
* r(只读) rw(可读可写) rws(可读可写) rwd(可读可写)
* 随机访问流按照一定的顺序;来存储数据,那么它有一个特定的方法
* skipBytes(int n) 用来跳过多少个字节读信息
* seek(long pos) 将指针移到某个位置的方法
*
* */
//创建一个随机访问流,往文件中写入值
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"ibm.txt");
RandomAccessFile raf = new RandomAccessFile(file,"rw");
String name = null;
int age = 0;
String pass = null;
name = "cw ";
age = 22;
pass = "123456";
//将上面的属性通过随机访问流写入Student.txt文件中去
//第一个人
raf.writeBytes(name);
raf.writeBytes(pass);
raf.writeInt(age);
//第二个人
name = "sbb";
age = 21;
pass = "123456";
raf.writeBytes(name);
raf.writeBytes(pass);
raf.writeInt(age);
//第三个人
name = "gk ";
age = 20;
pass = "123456";
raf.writeBytes(name);
raf.writeBytes(pass);
raf.writeInt(age);
//关闭流
raf.close();
}
}
package com.ibm.random;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class OutRandomDemo {
public static void main(String[] args) {
//把文件中的信息通过随机访问流读出来
//读第二个人的信息
try {
RandomAccessFile raf=new RandomAccessFile("d:\\ibm.txt","r");
//当前指针没做任何操作,那么文件指针是从开始位置开始0
System.out.println(raf.getFilePointer());
//我要读取第二个人的信息,那么就应该把指针偏移量向下
raf.seek(13);
System.out.println("------第二个人的信息-------");
byte[] b=new byte[9];
for(int i=0;i
b[i]=raf.readByte();
}
//将 byte数组转换成字符串
String nameall=new String(b);
//在将字符串进行截取
String name=nameall.substring(0,3);
System.out.println(name);
String pass=nameall.substring(3);
System.out.println(pass);
int age=raf.readInt();
System.out.println(age);
//如果要取第一个人的信息,需要将指针偏移到0
raf.seek(0);
System.out.println(raf.getFilePointer());
System.out.println("------第一个人的信息-------");
byte[] b1=new byte[9];
for(int i=0;i
b1[i]=raf.readByte();
}
//将 byte数组转换成字符串
String nameall1=new String(b1);
//在将字符串进行截取
String name1=nameall1.substring(0,3);
System.out.println(name1);
String pass1=nameall1.substring(3);
System.out.println(pass1);
int age1=raf.readInt();
System.out.println(age1);
raf.seek(26);
System.out.println("-----第三个人的信息-----");
byte[] b2=new byte[9];