<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    csusky

    常用鏈接

    統計

    最新評論

    org.apache.lucene.store.RAMOutputStream

    這是OutputStream的一個子類,其輸出設備是內存,準確來說是RAMFile,即將數據寫入到RAMFile的Vector中去。
    該類有一個最重要的方法,現在把它整個貼出來

    public void flushBuffer(byte[] src, int len) {
        int bufferNumber = pointer/BUFFER_SIZE;   //buffer序列,即當前所寫Buffer在RAMFile中的Vector中的序列號
        int bufferOffset = pointer%BUFFER_SIZE;   //偏移量,即當前所寫字節在當前Buffer中的偏移量。
        int bytesInBuffer = BUFFER_SIZE - bufferOffset; //當前Buffer的剩余可寫字節數
       //bytesToCopy是實際寫入的字節數,如果當前Bufer的剩余字節數大于需要寫的字節的總數則寫入所有字節
       //否則,將當前Buffer寫滿即可,剩余的字節將寫入下一個Buffer
        int bytesToCopy = bytesInBuffer >= len ? len : bytesInBuffer;

        if (bufferNumber == file.buffers.size())
          file.buffers.addElement(new byte[BUFFER_SIZE]); //在RAMFile中添加新的byte[1024]元素

        byte[] buffer = (byte[])file.buffers.elementAt(bufferNumber);
        System.arraycopy(src, 0, buffer, bufferOffset, bytesToCopy);

        if (bytesToCopy < len) {     // not all in one buffer,
          int srcOffset = bytesToCopy;
          bytesToCopy = len - bytesToCopy;    // remaining bytes 剩余的未寫入的字節數
          bufferNumber++;                         //將buffer數增加1
          if (bufferNumber == file.buffers.size()) 
            file.buffers.addElement(new byte[BUFFER_SIZE]);
          buffer = (byte[])file.buffers.elementAt(bufferNumber); //剩余字節寫入下一個Buffer
          System.arraycopy(src, srcOffset, buffer, 0, bytesToCopy);
        }
        pointer += len;
        if (pointer > file.length)
          file.length = pointer;        //移位文件指針          在原有的基礎上加上實際寫入的字節總數

        file.lastModified = System.currentTimeMillis(); //修改文件的最后修改時間為當前時間
      }

    從指定的字節數組復制指定長度的字節到RAMFile中去。由于RAMFile中Vector的元素是byte[1024]所以可能存在做一次該操作
    要操作兩個Vector元素的情況。即先將當前byte[1024]數組填滿,再新建一個元素裝載剩余的字節。

    另外還有一個writeTo(OutputStream out)方法,將RAMFile中的數據輸出到另一個輸出流



    posted on 2008-04-18 11:38 曉宇 閱讀(231) 評論(0)  編輯  收藏 所屬分類: LUCENE

    主站蜘蛛池模板: 亚洲精品乱码久久久久久下载| 日本最新免费不卡二区在线| 亚洲av永久无码精品表情包| 国产亚洲女在线线精品| 国产精品亚洲综合| 毛片视频免费观看| 亚洲一区二区三区免费在线观看| 91精品全国免费观看含羞草 | 免费观看日本污污ww网站一区| 亚洲毛片av日韩av无码| 视频一区在线免费观看| 中文字幕亚洲专区| 野花香高清视频在线观看免费 | 免费A级毛片无码专区| 蜜桃精品免费久久久久影院| 亚洲日韩精品国产一区二区三区| 成人免费乱码大片A毛片| 最近的免费中文字幕视频| 亚洲精品国产综合久久久久紧| 在线观看免费精品国产| 日本在线观看免费高清| 日韩va亚洲va欧洲va国产| 久久久久久毛片免费播放| 亚洲乱亚洲乱妇24p| 亚洲精品综合久久| 午夜影院免费观看| 亚洲天堂2017无码中文| www亚洲精品少妇裸乳一区二区| 亚洲成a人片在线网站| 真实乱视频国产免费观看 | 亚洲AV无码一区二区乱子仑| 亚洲区不卡顿区在线观看| 13小箩利洗澡无码视频网站免费| 亚洲国产综合专区电影在线| 成人片黄网站A毛片免费| a一级爱做片免费| 亚洲一区二区影视| 亚洲人成人网站在线观看| 91嫩草免费国产永久入口| 日本黄页网址在线看免费不卡| 18gay台湾男同亚洲男同|