package javaSE;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
//此类提供对文件内容的访问,既可以读文件,也可以写文件
//支持随机访问文件,可以访问文件的任意位置
//java文件模型
// 在硬盘上的文件是byte byte byte存储,是数据的集合
//打来文件
//有两种模式rw(读写) r 只读
//RandomAccessFile raf=new RandomAccessFile(file,"rw")
//文件指针,打开文件时指针在开头 pointer =0
//写方法
//raf.write(int) 只写一个字节(后八位) 同时指针指向下一个位置
//读方法
//int b=raf.read() 只读一个字节
//文件读写完成后一定要关闭(否则会有意想不到的后果)
public class RandomAccessFileJava {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File demo=new File("d://Demo");
if(!demo.exists())
demo.mkdirs();
File file=new File(demo,"raf.dat");
if(!file.exists())
file.createNewFile();
RandomAccessFile raf=new RandomAccessFile(file,"rw");
System.out.println(raf.getFilePointer());
raf.write('A');
System.out.println(raf.getFilePointer());
raf.write('B');
System.out.println(raf.getFilePointer());
int i=0x7fffffff;
//用 write方法每次 只能写一个字节,如果要把i写进去,就得写4次
raf.write(i>>>24);//高8位
raf.write(i>>>16);
raf.write(i>>>8);
raf.write(i);
//int 占4个字节
System.out.println(raf.getFilePointer());
raf.writeInt(i);
System.out.println(raf.getFilePointer());
String s="中";
byte[] gbk=s.getBytes("gbk");
raf.write(gbk);
//读文件,必须把指针移到头部
raf.seek(0);
//一次性读取,把文件中得内容都读到字节数字中
byte[] buf=new byte[(int) raf.length()];
raf.read(buf);
System.out.println(Arrays.toString(buf));
String s1=new String(buf,"gbk");
System.out.println(s1);
System.out.println(raf.getFilePointer());
raf.close();
}
}
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
//此类提供对文件内容的访问,既可以读文件,也可以写文件
//支持随机访问文件,可以访问文件的任意位置
//java文件模型
// 在硬盘上的文件是byte byte byte存储,是数据的集合
//打来文件
//有两种模式rw(读写) r 只读
//RandomAccessFile raf=new RandomAccessFile(file,"rw")
//文件指针,打开文件时指针在开头 pointer =0
//写方法
//raf.write(int) 只写一个字节(后八位) 同时指针指向下一个位置
//读方法
//int b=raf.read() 只读一个字节
//文件读写完成后一定要关闭(否则会有意想不到的后果)
public class RandomAccessFileJava {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File demo=new File("d://Demo");
if(!demo.exists())
demo.mkdirs();
File file=new File(demo,"raf.dat");
if(!file.exists())
file.createNewFile();
RandomAccessFile raf=new RandomAccessFile(file,"rw");
System.out.println(raf.getFilePointer());
raf.write('A');
System.out.println(raf.getFilePointer());
raf.write('B');
System.out.println(raf.getFilePointer());
int i=0x7fffffff;
//用 write方法每次 只能写一个字节,如果要把i写进去,就得写4次
raf.write(i>>>24);//高8位
raf.write(i>>>16);
raf.write(i>>>8);
raf.write(i);
//int 占4个字节
System.out.println(raf.getFilePointer());
raf.writeInt(i);
System.out.println(raf.getFilePointer());
String s="中";
byte[] gbk=s.getBytes("gbk");
raf.write(gbk);
//读文件,必须把指针移到头部
raf.seek(0);
//一次性读取,把文件中得内容都读到字节数字中
byte[] buf=new byte[(int) raf.length()];
raf.read(buf);
System.out.println(Arrays.toString(buf));
String s1=new String(buf,"gbk");
System.out.println(s1);
System.out.println(raf.getFilePointer());
raf.close();
}
}