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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bufferedindexinput.cs

?? 介紹有關(guān)全文檢索的類庫(kù),以lucene為例,在.net環(huán)境下實(shí)現(xiàn)多種類型文檔的全文檢索.
?? CS
字號(hào):
/*
 * 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.
 */

using System;

namespace Lucene.Net.Store
{
	
	/// <summary>Base implementation class for buffered {@link IndexInput}. </summary>
	public abstract class BufferedIndexInput : IndexInput, System.ICloneable
	{
		internal static readonly int BUFFER_SIZE;
		
		private byte[] buffer;
		
		private long bufferStart = 0; // position in file of buffer
		private int bufferLength = 0; // end of valid bytes
		private int bufferPosition = 0; // next byte to read
		
		public override byte ReadByte()
		{
			if (bufferPosition >= bufferLength)
				Refill();
			return buffer[bufferPosition++];
		}
		
		public override void  ReadBytes(byte[] b, int offset, int len)
		{
			if (len <= (bufferLength - bufferPosition))
			{
				// the buffer contains enough data to satistfy this request
				if (len > 0)
				// to allow b to be null if len is 0...
					Array.Copy(buffer, bufferPosition, b, offset, len);
				bufferPosition += len;
			}
			else
			{
				// the buffer does not have enough data. First serve all we've got.
				int available = bufferLength - bufferPosition;
				if (available > 0)
				{
					Array.Copy(buffer, bufferPosition, b, offset, available);
					offset += available;
					len -= available;
					bufferPosition += available;
				}
				// and now, read the remaining 'len' bytes:
				if (len < BUFFER_SIZE)
				{
					// If the amount left to read is small enough, do it in the usual
					// buffered way: fill the buffer and copy from it:
					Refill();
					if (bufferLength < len)
					{
						// Throw an exception when refill() could not read len bytes:
						Array.Copy(buffer, 0, b, offset, bufferLength);
						throw new System.IO.IOException("read past EOF");
					}
					else
					{
						Array.Copy(buffer, 0, b, offset, len);
						bufferPosition = len;
					}
				}
				else
				{
					// The amount left to read is larger than the buffer - there's no
					// performance reason not to read it all at once. Note that unlike
					// the previous code of this function, there is no need to do a seek
					// here, because there's no need to reread what we had in the buffer.
					long after = bufferStart + bufferPosition + len;
					if (after > Length())
						throw new System.IO.IOException("read past EOF");
					ReadInternal(b, offset, len);
					bufferStart = after;
					bufferPosition = 0;
					bufferLength = 0; // trigger refill() on read
				}
			}
		}
		
		private void  Refill()
		{
			long start = bufferStart + bufferPosition;
			long end = start + BUFFER_SIZE;
			if (end > Length())
				// don't read past EOF
				end = Length();
			bufferLength = (int) (end - start);
			if (bufferLength <= 0)
				throw new System.IO.IOException("read past EOF");
			
			if (buffer == null)
				buffer = new byte[BUFFER_SIZE]; // allocate buffer lazily
			ReadInternal(buffer, 0, bufferLength);
			
			bufferStart = start;
			bufferPosition = 0;
		}
		
		/// <summary>Expert: implements buffer refill.  Reads bytes from the current position
		/// in the input.
		/// </summary>
		/// <param name="b">the array to read bytes into
		/// </param>
		/// <param name="offset">the offset in the array to start storing bytes
		/// </param>
		/// <param name="length">the number of bytes to read
		/// </param>
		public abstract void  ReadInternal(byte[] b, int offset, int length);
		
		public override long GetFilePointer()
		{
			return bufferStart + bufferPosition;
		}
		
		public override void  Seek(long pos)
		{
			if (pos >= bufferStart && pos < (bufferStart + bufferLength))
				bufferPosition = (int) (pos - bufferStart);
				// seek within buffer
			else
			{
				bufferStart = pos;
				bufferPosition = 0;
				bufferLength = 0; // trigger refill() on read()
				SeekInternal(pos);
			}
		}
		
		/// <summary>Expert: implements seek.  Sets current position in this file, where the
		/// next {@link #ReadInternal(byte[],int,int)} will occur.
		/// </summary>
		/// <seealso cref="#ReadInternal(byte[],int,int)">
		/// </seealso>
		public abstract void  SeekInternal(long pos);
		
		public override System.Object Clone()
		{
			BufferedIndexInput clone = (BufferedIndexInput) base.Clone();
			
			if (buffer != null)
			{
				clone.buffer = new byte[BUFFER_SIZE];
				Array.Copy(buffer, 0, clone.buffer, 0, bufferLength);
			}
			
			return clone;
		}

		static BufferedIndexInput()
		{
			BUFFER_SIZE = BufferedIndexOutput.BUFFER_SIZE;
		}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类久久久品| av不卡一区二区三区| 337p亚洲精品色噜噜狠狠| 亚洲第一av色| 91麻豆精品国产自产在线观看一区| 亚洲国产精品一区二区www | 91蝌蚪国产九色| 日韩毛片一二三区| 欧美日韩精品福利| 久久电影网电视剧免费观看| 国产欧美日韩另类一区| 91免费视频大全| 亚洲a一区二区| 精品久久久久久久人人人人传媒| 国产激情91久久精品导航 | 看片的网站亚洲| 久久婷婷色综合| jlzzjlzz欧美大全| 亚洲成av人**亚洲成av**| 精品国产91亚洲一区二区三区婷婷 | 日韩精品一区二区在线| 国产suv精品一区二区6| 亚洲精品乱码久久久久久久久| 欧美久久婷婷综合色| 国产毛片精品一区| 亚洲影院在线观看| 2023国产精品自拍| 欧美亚洲免费在线一区| 国产一区二区三区电影在线观看 | 午夜一区二区三区视频| 久久综合给合久久狠狠狠97色69| 99re热这里只有精品视频| 日精品一区二区三区| 中文字幕日韩av资源站| 777午夜精品免费视频| www.欧美亚洲| 另类小说一区二区三区| 一区二区国产视频| 久久久久久久综合色一本| 欧美日韩专区在线| 成人看片黄a免费看在线| 欧美网站大全在线观看| 韩国中文字幕2020精品| 亚洲国产精品久久一线不卡| 中文字幕在线一区| 亚洲精品在线免费播放| 欧美精品视频www在线观看| 91在线免费看| 国产凹凸在线观看一区二区| 裸体歌舞表演一区二区| 亚洲一二三四区不卡| 国产精品美女久久福利网站| 2024国产精品| 日韩一级片网址| 欧美日韩另类一区| 欧美综合欧美视频| 99这里都是精品| 成人免费高清在线| 国产乱码精品一区二区三区av| 日韩1区2区3区| 手机精品视频在线观看| 亚洲影视在线观看| 一片黄亚洲嫩模| 亚洲色图都市小说| 1000精品久久久久久久久| 国产视频一区二区在线| 久久美女高清视频| 精品福利一区二区三区| 欧美成人性战久久| 日韩精品一区二区三区在线播放 | 久久精品视频在线看| 日韩三级高清在线| 91精品国产色综合久久ai换脸| 欧美性猛交xxxxxx富婆| 在线亚洲免费视频| 在线看日韩精品电影| 91豆麻精品91久久久久久| 色综合久久久久综合体桃花网| 99免费精品视频| 色av成人天堂桃色av| 91网站最新地址| 色综合久久综合中文综合网| 91无套直看片红桃| 色综合视频在线观看| 欧美在线观看你懂的| 欧美在线视频不卡| 7777精品久久久大香线蕉| 91精品国产91久久久久久一区二区| 欧美另类久久久品| 欧美一区二区啪啪| 久久精品欧美一区二区三区麻豆| 欧美激情一区三区| 中文字幕亚洲在| 一区二区在线看| 亚洲va天堂va国产va久| 裸体健美xxxx欧美裸体表演| 韩国av一区二区三区四区| 国产成人综合网站| 91国模大尺度私拍在线视频| 在线精品视频免费观看| 8v天堂国产在线一区二区| 久久综合九色综合欧美亚洲| 国产另类ts人妖一区二区| 91麻豆国产福利精品| 欧美日韩国产乱码电影| 欧美r级在线观看| 国产日韩欧美一区二区三区综合| 亚洲欧美激情插| 日精品一区二区| 成人免费看片app下载| 91福利小视频| 久久嫩草精品久久久精品| **欧美大码日韩| 日本在线观看不卡视频| 国产成人一级电影| 精品视频一区三区九区| 精品噜噜噜噜久久久久久久久试看| 欧美高清在线视频| 婷婷夜色潮精品综合在线| 国产激情视频一区二区三区欧美| 色一情一乱一乱一91av| 精品福利视频一区二区三区| 亚洲另类在线制服丝袜| 国产乱理伦片在线观看夜一区| 日本大香伊一区二区三区| 精品剧情在线观看| 亚洲国产视频在线| 粗大黑人巨茎大战欧美成人| 欧美日韩的一区二区| 亚洲色图在线播放| 国内一区二区在线| 4438亚洲最大| 亚洲精品中文在线影院| 国产一区不卡视频| 在线播放一区二区三区| 国产精品毛片高清在线完整版| 日本午夜一本久久久综合| 色综合视频一区二区三区高清| 久久综合久久综合亚洲| 午夜精品成人在线| 91浏览器入口在线观看| 国产网红主播福利一区二区| 日韩激情在线观看| 在线亚洲人成电影网站色www| 国产区在线观看成人精品| 久久成人免费网站| 精品视频资源站| 一区二区免费在线播放| 99精品视频在线观看| 国产欧美日韩中文久久| 国产乱人伦偷精品视频免下载 | 国产自产高清不卡| 欧美电影影音先锋| 亚洲成人免费观看| 在线视频欧美精品| 亚洲人成7777| 91网站最新网址| 国产精品麻豆视频| 成人avav在线| 一区在线中文字幕| 成人app在线| 中国色在线观看另类| 东方aⅴ免费观看久久av| 国产日韩av一区| 国产成人在线色| 国产精品免费人成网站| 岛国精品在线播放| 中文字幕在线观看一区| 91丨九色丨黑人外教| 亚洲欧美一区二区三区极速播放| 9人人澡人人爽人人精品| 中文字幕中文字幕在线一区 | 欧美夫妻性生活| 丝袜亚洲另类欧美| 日韩区在线观看| 狠狠色综合日日| 国产三级一区二区| 成人美女在线观看| 亚洲精品国产a| 欧美精品自拍偷拍| 轻轻草成人在线| 欧美电影免费观看高清完整版在线| 美腿丝袜亚洲一区| 久久久www免费人成精品| 成人成人成人在线视频| 一区二区三区四区激情| 欧美日韩1区2区| 狠狠网亚洲精品| 亚洲视频在线观看三级| 欧美在线短视频| 捆绑调教一区二区三区| 久久久精品国产免大香伊| 色欧美片视频在线观看在线视频| 日韩高清不卡在线| 久久精品在线观看| 欧日韩精品视频| 国内国产精品久久| 怡红院av一区二区三区| 精品久久久久一区二区国产| 成人av网站在线观看免费|