加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java _io_随机读取读入流RandomAccessFile

发布时间:2020-12-15 05:30:25 所属栏目:Java 来源:网络整理
导读:随机读取和写入流RandomAccessFile 支持读取和写入随机访问文件 RandomAccessFile raf=new RandomAccessFile(文件对象,读写模式);r只读,rw读和写 private File f;//目的地private String dir;//所有分割后的文件存储路径private ListString list;//每块大
  • 随机读取和写入流RandomAccessFile
  • 支持读取和写入随机访问文件
  • RandomAccessFile raf=new RandomAccessFile(文件对象,读写模式);r只读,rw读和写

    private File f;
    //目的地
    private String dir;
    //所有分割后的文件存储路径
    private List<String> list;
    //每块大小
    private int blockSize;
    //块数
    private int size;

    public n(File f,String dir,int blockSize)
    {
    this.f=f;
    this.dir=dir;
    this.blockSize=blockSize;
    this.list=new ArrayList<String>;
    }

    //初始化
    private void init()
    {
    //总长度
    long len=this.f.length();
    //块数
    this.size=(int)Math.ceil(len*1.0/blockSize);
    //路径:
    for(int i=0;i<size;i++)
    {
    this.list.add(this.dir+i+this.f.getName());
    }

    }
    //分割:计算每一块的起始位置及大小
    public void split()
    {

    }
    public void t3(int i,int first,int real) throws IOException
    {
    RandomAccessFile raf=new RandomAccessFile(this.f,"r");
    RandomAccessFile raf2=new RandomAccessFile(this.list.get(i),"rw");

    raf.seek(first);//从第二个位置开始
    
    byte[] flush=new byte[1024];
    int len=-1;
    while((len=raf.read(flush))!=-1)
    {
        if(real>1024)
        {
            raf2.write(flush,len);
            real-=1024;
        }else
        {
    
        raf2.write(flush,real);
        break;  //读取指定大小,读完退出
    }
    raf2.close();
    raf.close();

    }
    }
    public static void main(String[]args)
    {

    }

    }

  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读