javaIO RandomAccessFile

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




}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值