/*
* 把10个整数写入一个tom.bat文件当中,并且按相反顺序读出
*/
package Practice;
import java.io.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
RandomAccessFile inandout = null;
int data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
try {
inandout = new RandomAccessFile("tom.dat", "rw");
for(int i = 0; i < data.length; i++) {
inandout.writeInt(data[i]); //写入一个int值
}
for(long i = data.length - 1; i >= 0; i--) {
inandout.seek(i * 4); //一个int型数据占4个字节,inandout从第36个字节读取最后面一个整数
System.out.print(" " + inandout.readInt()); //读取一个int值(占四个字节)}
inandout.close();
}
catch(IOException e){
}
}
}
/*
* 随机流使用readLine()读取文件时,在读取非ASCII时,会出现乱码现象,需要用 IOS 8859-1 重新进行编码存取byte数组当中
*/
package Practice;
import java.io.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
RandomAccessFile in = null;
try {
in = new RandomAccessFile("Main.java", "rw"); //可以将文件名换为指定文件路径下的文件
long length = in.length(); //获取文件长度
long position = 0;
in.seek(position);
while(position < length) {
String str = in.readLine();
byte b[] = str.getBytes("ISO-8859-1");
str = new String(b);
position = in.getFilePointer(); //获取文件当前位置
System.out.println(str);
}
}
catch(IOException e){
System.out.println("fjkasdf");
}
}
}