溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java _io_隨機(jī)讀取讀入流RandomAccessFile

發(fā)布時間:2020-07-13 05:18:58 來源:網(wǎng)絡(luò) 閱讀:202 作者:wx5d21d5e6e5ab1 欄目:編程語言
  • 隨機(jī)讀取和寫入流RandomAccessFile
  • 支持讀取和寫入隨機(jī)訪問文件
  • RandomAccessFile raf=new RandomAccessFile(文件對象,讀寫模式);r只讀,rw讀和寫

    private File f;
    //目的地
    private String dir;
    //所有分割后的文件存儲路徑
    private List<String> list;
    //每塊大小
    private int blockSize;
    //塊數(shù)
    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();
    //塊數(shù)
    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,0,len);
            real-=1024;
        }else
        {
    
        raf2.write(flush,0,real);
        break;  //讀取指定大小,讀完退出
    }
    raf2.close();
    raf.close();

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

    }

    }

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI