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

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

?? warcreaderfactory.java

?? 一個基于lucene&heritrix的搜索引擎
?? JAVA
字號:
/* $Id: WARCReaderFactory.java,v 1.2 2006/08/24 00:59:04 stack-sf Exp $ * * Created Aug 22, 2006 * * Copyright (C) 2006 Internet Archive. * * This file is part of the Heritrix web crawler (crawler.archive.org). * * Heritrix is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * any later version. * * Heritrix is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU Lesser Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Heritrix; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */package org.archive.io.warc;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.MalformedURLException;import java.net.URL;import java.util.Iterator;import org.archive.io.ArchiveReader;import org.archive.io.ArchiveReaderFactory;import org.archive.io.ArchiveRecord;import org.archive.io.GzippedInputStream;import org.archive.util.FileUtils;/** * Factory for WARC Readers. * Figures whether to give out a compressed file Reader or an uncompressed * Reader. * @author stack * @version $Date: 2006/08/24 00:59:04 $ $Version$ */public class WARCReaderFactory extends ArchiveReaderFactoryimplements WARCConstants {    private static final WARCReaderFactory factory = new WARCReaderFactory();    /**     * Shutdown any access to default constructor.     * This factory is Singleton.     */    private WARCReaderFactory() {        super();    }        public static WARCReader get(String arcFileOrUrl)    throws MalformedURLException, IOException {    	return (WARCReader)WARCReaderFactory.factory.    		getArchiveReader(arcFileOrUrl);    }        public static WARCReader get(final File f) throws IOException {    	return (WARCReader)WARCReaderFactory.factory.getArchiveReader(f);    }        /**     * @param f An arcfile to read.     * @param offset Have returned Reader set to start reading at this offset.     * @return A WARCReader.     * @throws IOException      */    public static WARCReader get(final File f, final long offset)    throws IOException {    	return (WARCReader)WARCReaderFactory.factory.    		getArchiveReader(f, offset);    }        protected ArchiveReader getArchiveReader(final File f, final long offset)    throws IOException {		boolean compressed = testCompressedWARCFile(f);		if (!compressed) {			if (!FileUtils.isReadableWithExtensionAndMagic(f,					DOT_WARC_FILE_EXTENSION, WARC_MAGIC)) {				throw new IOException(f.getAbsolutePath()						+ " is not a WARC file.");			}		}		return (WARCReader)(compressed?			WARCReaderFactory.factory.new CompressedWARCReader(f, offset):			WARCReaderFactory.factory.new UncompressedWARCReader(f, offset));	}        public static ArchiveReader get(final String s, final InputStream is,            final boolean atFirstRecord)    throws IOException {        return WARCReaderFactory.factory.getArchiveReader(s, is,            atFirstRecord);    }        protected ArchiveReader getArchiveReader(final String f,			final InputStream is, final boolean atFirstRecord)			throws IOException {		// For now, assume stream is compressed. Later add test of input		// stream or handle exception thrown when figure not compressed stream.		return new CompressedWARCReader(f, is, atFirstRecord);	}        public static WARCReader get(final URL arcUrl, final long offset)    throws IOException {        return (WARCReader)WARCReaderFactory.factory.getArchiveReader(arcUrl,            offset);    }        /**     * Get an ARCReader.     * Pulls the ARC local into whereever the System Property     * <code>java.io.tmpdir</code> points. It then hands back an ARCReader that     * points at this local copy.  A close on this ARCReader instance will     * remove the local copy.     * @param arcUrl An URL that points at an ARC.     * @return An ARCReader.     * @throws IOException      */    public static WARCReader get(final URL arcUrl)    throws IOException {        return (WARCReader)WARCReaderFactory.factory.getArchiveReader(arcUrl);    }        /**     * Check file is compressed WARC.     *     * @param f File to test.     *     * @return True if this is compressed WARC (TODO: Just tests if file is     * GZIP'd file (It begins w/ GZIP MAGIC)).     *     * @exception IOException If file does not exist or is not unreadable.     */    public static boolean testCompressedWARCFile(final File f)    throws IOException {        FileUtils.isReadable(f);        boolean compressed = false;        final InputStream is = new FileInputStream(f);        try {            compressed = GzippedInputStream.isCompressedStream(is);        } finally {            is.close();        }        return compressed;    }    /**     * Uncompressed WARC file reader.     * @author stack     */    private class UncompressedWARCReader extends WARCReader {        /**         * Constructor.         * @param f Uncompressed arcfile to read.         * @throws IOException         */        public UncompressedWARCReader(final File f)        throws IOException {            this(f, 0);        }        /**         * Constructor.         *          * @param f Uncompressed file to read.         * @param offset Offset at which to position Reader.         * @throws IOException         */        public UncompressedWARCReader(final File f, final long offset)        throws IOException {            // File has been tested for existence by time it has come to here.            setIn(getInputStream(f, offset));            initialize(f.getAbsolutePath());        }                /**         * Constructor.         *          * @param f Uncompressed file to read.         * @param is InputStream.         */        public UncompressedWARCReader(final String f, final InputStream is) {            // Arc file has been tested for existence by time it has come            // to here.            setIn(is);            initialize(f);        }    }        /**     * Compressed WARC file reader.     *      * @author stack     */    private class CompressedWARCReader extends WARCReader {        /**         * Constructor.         *          * @param f Compressed file to read.         * @throws IOException         */        public CompressedWARCReader(final File f) throws IOException {            this(f, 0);        }        /**         * Constructor.         *          * @param f Compressed arcfile to read.         * @param offset Position at where to start reading file.         * @throws IOException         */        public CompressedWARCReader(final File f, final long offset)                throws IOException {            // File has been tested for existence by time it has come to here.            setIn(new GzippedInputStream(getInputStream(f, offset)));            setCompressed((offset == 0));            initialize(f.getAbsolutePath());        }                /**         * Constructor.         *          * @param f Compressed arcfile.         * @param is InputStream to use.         * @param atFirstRecord         * @throws IOException         */        public CompressedWARCReader(final String f, final InputStream is,            final boolean atFirstRecord)        throws IOException {            // Arc file has been tested for existence by time it has come            // to here.            setIn(new GzippedInputStream(is));            setCompressed(true);            initialize(f);            // TODO: Ignore atFirstRecord. Probably doesn't apply in WARC world.        }                /**         * Get record at passed <code>offset</code>.         *          * @param offset Byte index into file at which a record starts.         * @return A WARCRecord reference.         * @throws IOException         */        public WARCRecord get(long offset) throws IOException {            cleanupCurrentRecord();            ((GzippedInputStream)getIn()).gzipMemberSeek(offset);            return (WARCRecord) createArchiveRecord(getIn(), offset);        }                public Iterator<ArchiveRecord> iterator() {            /**             * Override ArchiveRecordIterator so can base returned iterator on             * GzippedInputStream iterator.             */            return new ArchiveRecordIterator() {                private GzippedInputStream gis =                    (GzippedInputStream)getInputStream();                private Iterator gzipIterator = this.gis.iterator();                protected boolean innerHasNext() {                    return this.gzipIterator.hasNext();                }                protected ArchiveRecord innerNext() throws IOException {                    // Get the positoin before gzipIterator.next moves                    // it on past the gzip header.                    long p = this.gis.position();                    InputStream is = (InputStream) this.gzipIterator.next();                    return createArchiveRecord(is, p);                }            };        }                protected void gotoEOR(ArchiveRecord rec) throws IOException {        	// TODO        }    }        public static boolean isWARCSuffix(final String f) {    	return (f == null)?    		false:    		(f.toLowerCase().endsWith(DOT_COMPRESSED_WARC_FILE_EXTENSION))?    		    true:    			(f.toLowerCase().endsWith(DOT_WARC_FILE_EXTENSION))?    			true: false;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1000精品久久久久久久久| 午夜激情久久久| 欧美一区二区三区成人| 色综合久久久久久久| 国产91精品一区二区麻豆亚洲| 免费在线观看一区| 日韩精品一级二级| 蜜桃av一区二区| 日本成人中文字幕| 蜜桃精品视频在线| 国产一区二区三区国产| 韩国精品在线观看| 国产一区二区不卡老阿姨| 国产在线精品视频| 成人综合在线观看| 色哟哟一区二区三区| 欧美性猛交xxxx乱大交退制版| 欧美色老头old∨ideo| 欧美一区二区三区视频免费播放| 欧美三级电影一区| 精品少妇一区二区三区免费观看 | 久久久久久免费| 久久久亚洲午夜电影| 日本一区二区免费在线| 亚洲精品亚洲人成人网在线播放| 亚洲制服丝袜av| 天堂久久一区二区三区| 激情亚洲综合在线| 91亚洲永久精品| 欧美日韩精品免费| 久久久99免费| 亚洲激情自拍视频| 久久精品久久精品| 99在线视频精品| 555www色欧美视频| 国产欧美日韩久久| 天天av天天翘天天综合网色鬼国产| 日本欧美肥老太交大片| 丁香六月综合激情| 欧美日韩一区 二区 三区 久久精品| 日韩欧美123| 中文一区在线播放| 日韩精品国产欧美| av亚洲精华国产精华| 欧美一区二区在线观看| 国产精品久久久久久久久图文区| 亚洲第一福利一区| 成人av在线播放网址| 日韩欧美高清一区| 亚洲欧美精品午睡沙发| 久久99国内精品| 日本精品视频一区二区三区| 精品999在线播放| 亚洲va在线va天堂| 国产98色在线|日韩| 91精品福利在线一区二区三区 | 日韩欧美一区二区久久婷婷| 成人免费在线观看入口| 久久精品国产精品亚洲综合| 欧美丝袜丝交足nylons| 国产欧美日韩综合| 国产一区啦啦啦在线观看| 欧美精品乱码久久久久久| 成人免费在线视频观看| 成人永久看片免费视频天堂| 精品国产一区二区三区久久久蜜月 | 日韩成人精品在线| 精品视频免费在线| 亚洲视频1区2区| 成人avav在线| 欧美极品aⅴ影院| 国产精品系列在线播放| 精品国产成人在线影院| 日韩av一区二区三区| 欧美日本在线看| 亚洲成人精品在线观看| 欧美性生活一区| 亚洲第一电影网| 欧美群妇大交群的观看方式| 亚洲一二三级电影| 欧美区一区二区三区| 亚洲成人免费在线| 欧美日韩夫妻久久| 视频一区在线播放| 欧美一区二区三区视频免费播放 | 成人欧美一区二区三区1314| 成人黄色电影在线| 国产精品美女久久久久av爽李琼 | 午夜精品福利一区二区蜜股av | 国产成人免费视频网站高清观看视频| 日韩欧美一级片| 风间由美一区二区三区在线观看| 久久精品视频免费观看| 国产精品一区二区不卡| 国产精品色婷婷久久58| 91成人免费网站| 亚洲成人资源在线| 精品裸体舞一区二区三区| 国产精品一品视频| 中文字幕五月欧美| 欧美裸体bbwbbwbbw| 美国精品在线观看| 国产精品麻豆视频| 欧美日本乱大交xxxxx| 久草在线在线精品观看| 亚洲国产精品黑人久久久| 色综合天天综合在线视频| 亚洲国产日日夜夜| 国产亚洲一区二区三区四区| 91亚洲大成网污www| 日本不卡免费在线视频| 久久精品亚洲精品国产欧美kt∨| 91网站在线播放| 日韩精品国产精品| 中文字幕日本不卡| 欧美一区二区美女| a级高清视频欧美日韩| 五月婷婷另类国产| 国产精品国产三级国产| 日韩一级黄色片| 成人av动漫网站| 美国十次了思思久久精品导航| 国产精品久久福利| 日韩无一区二区| 色婷婷综合久久久中文字幕| 激情综合色综合久久| 亚洲精品免费在线播放| 欧美精品一区男女天堂| 欧美三级蜜桃2在线观看| 国产福利一区二区三区| 首页国产欧美久久| 曰韩精品一区二区| 国产精品妹子av| 久久亚洲精品国产精品紫薇| 欧美色手机在线观看| 91在线你懂得| 国产精品99久| 美女高潮久久久| 日韩在线一二三区| 亚洲国产欧美在线| 亚洲女同女同女同女同女同69| 精品999久久久| 精品免费视频一区二区| 欧美妇女性影城| 欧美日韩精品一区二区三区| 波多野结衣精品在线| 国产精品一区在线| 国产在线精品一区二区不卡了| 日韩成人伦理电影在线观看| 亚洲国产成人91porn| 一区av在线播放| 国产精品久久影院| 国产精品无遮挡| 国产拍欧美日韩视频二区| 精品欧美乱码久久久久久1区2区| 91麻豆精品国产自产在线观看一区| 色www精品视频在线观看| 色综合久久久久网| 欧美日本精品一区二区三区| 色综合av在线| 欧美主播一区二区三区| 欧美性猛交一区二区三区精品| 色中色一区二区| 在线看一区二区| 欧美日韩一级二级| 91麻豆精品91久久久久久清纯 | 国产一区二区三区日韩| 国产美女一区二区三区| 国产成人av一区| 成人美女视频在线看| 99热精品国产| 色诱亚洲精品久久久久久| 欧美特级限制片免费在线观看| 欧美日韩久久久久久| 91精品国产综合久久福利软件| 日韩一区二区三区四区五区六区| 日韩精品专区在线影院观看| 久久精品一区二区三区av| 国产精品理论在线观看| 一区二区三区不卡视频 | 欧美成人乱码一区二区三区| 亚洲精品一区二区在线观看| 久久精品视频免费| 亚洲黄色尤物视频| 日本成人在线不卡视频| 国产精品香蕉一区二区三区| 色噜噜久久综合| 日韩一区二区三区四区| 国产精品欧美一级免费| 亚洲电影中文字幕在线观看| 久久精品国产网站| 99免费精品在线观看| 欧美一区二区视频免费观看| 国产无一区二区| 亚洲夂夂婷婷色拍ww47| 国产福利一区二区三区在线视频| 在线观看一区二区视频| 亚洲精品一区在线观看| 亚洲成人综合网站| 成人午夜在线视频|