亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmapdirectory.java

?? lucene-2.4.0 是一個全文收索的工具包
?? JAVA
字號:
package org.apache.lucene.store;/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.IOException;import java.io.File;import java.io.RandomAccessFile;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;import java.nio.channels.FileChannel.MapMode;/** File-based {@link Directory} implementation that uses mmap for input. * * <p>To use this, invoke Java with the System property * org.apache.lucene.FSDirectory.class set to * org.apache.lucene.store.MMapDirectory.  This will cause {@link * FSDirectory#getDirectory(File,boolean)} to return instances of this class. */public class MMapDirectory extends FSDirectory {  private static class MMapIndexInput extends IndexInput {    private ByteBuffer buffer;    private final long length;    private MMapIndexInput(RandomAccessFile raf) throws IOException {        this.length = raf.length();        this.buffer = raf.getChannel().map(MapMode.READ_ONLY, 0, length);    }    public byte readByte() throws IOException {      return buffer.get();    }    public void readBytes(byte[] b, int offset, int len)      throws IOException {      buffer.get(b, offset, len);    }    public long getFilePointer() {      return buffer.position();    }    public void seek(long pos) throws IOException {      buffer.position((int)pos);    }    public long length() {      return length;    }    public Object clone() {      MMapIndexInput clone = (MMapIndexInput)super.clone();      clone.buffer = buffer.duplicate();      return clone;    }    public void close() throws IOException {}  }  private static class MultiMMapIndexInput extends IndexInput {      private ByteBuffer[] buffers;    private int[] bufSizes; // keep here, ByteBuffer.size() method is optional      private final long length;      private int curBufIndex;    private final int maxBufSize;      private ByteBuffer curBuf; // redundant for speed: buffers[curBufIndex]    private int curAvail; // redundant for speed: (bufSizes[curBufIndex] - curBuf.position())          public MultiMMapIndexInput(RandomAccessFile raf, int maxBufSize)      throws IOException {      this.length = raf.length();      this.maxBufSize = maxBufSize;            if (maxBufSize <= 0)        throw new IllegalArgumentException("Non positive maxBufSize: "                                           + maxBufSize);            if ((length / maxBufSize) > Integer.MAX_VALUE)        throw new IllegalArgumentException          ("RandomAccessFile too big for maximum buffer size: "           + raf.toString());            int nrBuffers = (int) (length / maxBufSize);      if ((nrBuffers * maxBufSize) < length) nrBuffers++;            this.buffers = new ByteBuffer[nrBuffers];      this.bufSizes = new int[nrBuffers];            long bufferStart = 0;      FileChannel rafc = raf.getChannel();      for (int bufNr = 0; bufNr < nrBuffers; bufNr++) {         int bufSize = (length > (bufferStart + maxBufSize))          ? maxBufSize          : (int) (length - bufferStart);        this.buffers[bufNr] = rafc.map(MapMode.READ_ONLY,bufferStart,bufSize);        this.bufSizes[bufNr] = bufSize;        bufferStart += bufSize;      }      seek(0L);    }      public byte readByte() throws IOException {      // Performance might be improved by reading ahead into an array of      // eg. 128 bytes and readByte() from there.      if (curAvail == 0) {        curBufIndex++;        curBuf = buffers[curBufIndex]; // index out of bounds when too many bytes requested        curBuf.position(0);        curAvail = bufSizes[curBufIndex];      }      curAvail--;      return curBuf.get();    }      public void readBytes(byte[] b, int offset, int len) throws IOException {      while (len > curAvail) {        curBuf.get(b, offset, curAvail);        len -= curAvail;        offset += curAvail;        curBufIndex++;        curBuf = buffers[curBufIndex]; // index out of bounds when too many bytes requested        curBuf.position(0);        curAvail = bufSizes[curBufIndex];      }      curBuf.get(b, offset, len);      curAvail -= len;    }      public long getFilePointer() {      return (curBufIndex * (long) maxBufSize) + curBuf.position();    }      public void seek(long pos) throws IOException {      curBufIndex = (int) (pos / maxBufSize);      curBuf = buffers[curBufIndex];      int bufOffset = (int) (pos - (curBufIndex * maxBufSize));      curBuf.position(bufOffset);      curAvail = bufSizes[curBufIndex] - bufOffset;    }      public long length() {      return length;    }      public Object clone() {      MultiMMapIndexInput clone = (MultiMMapIndexInput)super.clone();      clone.buffers = new ByteBuffer[buffers.length];      // No need to clone bufSizes.      // Since most clones will use only one buffer, duplicate() could also be      // done lazy in clones, eg. when adapting curBuf.      for (int bufNr = 0; bufNr < buffers.length; bufNr++) {        clone.buffers[bufNr] = buffers[bufNr].duplicate();      }      try {        clone.seek(getFilePointer());      } catch(IOException ioe) {        RuntimeException newException = new RuntimeException(ioe);        newException.initCause(ioe);        throw newException;      };      return clone;    }      public void close() throws IOException {}  }    private final int MAX_BBUF = Integer.MAX_VALUE;  public IndexInput openInput(String name) throws IOException {    File f =  new File(getFile(), name);    RandomAccessFile raf = new RandomAccessFile(f, "r");    try {      return (raf.length() <= MAX_BBUF)             ? (IndexInput) new MMapIndexInput(raf)             : (IndexInput) new MultiMMapIndexInput(raf, MAX_BBUF);    } finally {      raf.close();    }  }  public IndexInput openInput(String name, int bufferSize) throws IOException {    return openInput(name);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区小说| 亚洲一区二区在线观看视频| 亚洲丝袜制服诱惑| 免费成人在线影院| 在线亚洲一区二区| 国产精品久线在线观看| 国内外成人在线视频| 欧美精品在线观看一区二区| 国产精品高潮久久久久无| 国产一区二区导航在线播放| 7878成人国产在线观看| 亚洲欧美日韩在线| 99热在这里有精品免费| 欧美激情一区在线| 国产91丝袜在线观看| 26uuu国产在线精品一区二区| 偷拍亚洲欧洲综合| 欧美伊人精品成人久久综合97| 国产精品久久久久久久午夜片 | 亚洲一区二区三区四区五区中文| 国产精品系列在线观看| 日韩你懂的在线播放| 婷婷久久综合九色综合伊人色| 色综合一个色综合亚洲| 中文字幕一区视频| 成人av网站免费| 亚洲欧洲av色图| bt7086福利一区国产| 欧美国产精品一区二区三区| 国产成人在线视频免费播放| 久久亚区不卡日本| 国产乱人伦偷精品视频不卡| 久久久久久久国产精品影院| 国产精品一区免费在线观看| 国产欧美一区二区在线观看| 国产99一区视频免费| 国产精品美女久久久久久久久 | 成人一区二区在线观看| 久久久精品综合| 不卡av电影在线播放| 国产精品久久福利| 日本高清不卡视频| 亚洲国产视频在线| 欧美国产视频在线| youjizz国产精品| 一区二区三区在线免费观看| 欧美系列亚洲系列| 日本不卡一区二区三区| 日韩一卡二卡三卡国产欧美| 国产一区二区三区在线观看精品| 久久久www成人免费无遮挡大片| 成人亚洲精品久久久久软件| 亚洲三级在线免费| 在线不卡的av| 国产精品系列在线观看| 亚洲视频一二三| 91精品免费在线观看| 国产在线精品一区在线观看麻豆| 欧美极品xxx| 欧美午夜一区二区| 国产一区二区三区四区五区入口| 欧美激情艳妇裸体舞| 欧美日韩精品一区二区三区四区 | 天堂蜜桃91精品| 久久综合视频网| 色94色欧美sute亚洲线路一久| 美女视频免费一区| 亚洲欧美韩国综合色| 欧美一区二区网站| 99国产精品久久久久| 久久精品久久综合| 亚洲天堂中文字幕| 欧美精品一区二区在线观看| 91黄视频在线观看| 福利一区二区在线| 日韩综合在线视频| 亚洲欧洲综合另类| 欧美精品一区二区三区很污很色的 | 欧美精品一区二区三区在线播放| 99免费精品视频| 国产一区二区三区久久久 | 中文字幕在线一区二区三区| 制服丝袜av成人在线看| 91视频xxxx| 国产精品一区在线| 免费成人美女在线观看.| 亚洲品质自拍视频网站| 欧美精品一区二| 欧美精品黑人性xxxx| 91在线porny国产在线看| 国产精品系列在线观看| 蜜桃视频在线一区| 亚洲一区二区3| 亚洲欧洲成人精品av97| 久久青草国产手机看片福利盒子 | 亚洲一区成人在线| 欧美激情综合五月色丁香小说| 欧美一级日韩一级| 欧美日韩成人激情| 欧美日韩国产精品自在自线| 在线日韩一区二区| 91美女蜜桃在线| 91色视频在线| 99riav久久精品riav| 成人精品视频一区| 国产成人丝袜美腿| 国产精品性做久久久久久| 丝袜美腿高跟呻吟高潮一区| 亚洲综合图片区| 亚洲国产一区二区在线播放| 亚洲女同ⅹxx女同tv| 亚洲少妇最新在线视频| 国产精品久久久久久久久果冻传媒 | 国产大陆a不卡| 国产成人免费网站| 丁香一区二区三区| 成人激情开心网| 99国产精品99久久久久久| 色偷偷久久一区二区三区| aaa欧美日韩| 色8久久精品久久久久久蜜| 色菇凉天天综合网| 欧美系列一区二区| 日韩限制级电影在线观看| 欧美成人国产一区二区| 久久人人97超碰com| 中文字幕av一区二区三区| 国产精品久久二区二区| 一区二区三区不卡视频在线观看| 亚洲一区二区视频在线| 日韩黄色一级片| 国产成人综合精品三级| 日本精品裸体写真集在线观看| 欧美日韩在线播放| 久久综合资源网| 亚洲色图制服诱惑| 天堂va蜜桃一区二区三区| 黄色小说综合网站| 91免费观看国产| 欧美日韩精品欧美日韩精品一综合| 91精品国产麻豆| 国产欧美日韩一区二区三区在线观看| 中文字幕成人网| 一区二区三区日韩在线观看| 午夜欧美一区二区三区在线播放| 日日噜噜夜夜狠狠视频欧美人 | 日韩综合在线视频| 国产精品影音先锋| 在线精品视频免费播放| 欧美一级爆毛片| 亚洲视频免费在线观看| 午夜精品影院在线观看| 成人性生交大片免费看中文| 精品视频在线视频| 中文字幕欧美激情| 日韩国产高清在线| 91视频观看免费| 精品久久国产老人久久综合| 亚洲欧美另类久久久精品| 久久精品国产亚洲一区二区三区| av一本久道久久综合久久鬼色| 欧美福利视频导航| 亚洲欧美综合在线精品| 国产一区欧美日韩| 欧美日韩国产精品自在自线| 国产精品国产精品国产专区不片| 日本美女一区二区三区视频| 91视频在线看| 国产亚洲欧美色| 精品制服美女丁香| 欧美日韩一二三| 亚洲美女少妇撒尿| 国产精品正在播放| 精品久久一区二区三区| 亚洲成a人片在线观看中文| caoporm超碰国产精品| 国产日韩高清在线| 国产一区在线观看麻豆| 欧美一激情一区二区三区| 一区二区三区免费| av中文字幕不卡| 国产婷婷一区二区| 国产美女在线精品| 日韩一区二区三区免费看| 精品一区二区三区日韩| 欧美精品国产精品| 亚洲第一精品在线| 在线中文字幕不卡| 一区二区三区成人在线视频| 成人国产精品免费网站| 国产欧美va欧美不卡在线| 久久er99热精品一区二区| 欧美一区二区人人喊爽| 免费一级欧美片在线观看| 51精品秘密在线观看| 日韩精品电影一区亚洲| 欧美一二三四在线| 狠狠v欧美v日韩v亚洲ⅴ| 26uuu国产在线精品一区二区| 精品中文字幕一区二区小辣椒|