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

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

?? arcwriterprocessor.java

?? 高性能分詞算法
?? JAVA
字號:
/* * ARCWriter * * $Id: ARCWriterProcessor.java 5478 2007-09-19 01:37:07Z gojomo $ * * Created on Jun 5, 2003 * * Copyright (C) 2003 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.crawler.writer;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.StringWriter;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicInteger;import java.util.logging.Level;import java.util.logging.Logger;import javax.xml.transform.SourceLocator;import javax.xml.transform.Templates;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.stream.StreamResult;import javax.xml.transform.stream.StreamSource;import org.apache.commons.io.IOUtils;import org.archive.crawler.Heritrix;import org.archive.crawler.datamodel.CoreAttributeConstants;import org.archive.crawler.datamodel.CrawlURI;import org.archive.crawler.datamodel.FetchStatusCodes;import org.archive.crawler.event.CrawlStatusListener;import org.archive.crawler.framework.WriterPoolProcessor;import org.archive.crawler.settings.XMLSettingsHandler;import org.archive.io.ReplayInputStream;import org.archive.io.WriterPoolMember;import org.archive.io.WriterPoolSettings;import org.archive.io.arc.ARCConstants;import org.archive.io.arc.ARCWriter;import org.archive.io.arc.ARCWriterPool;/** * Processor module for writing the results of successful fetches (and * perhaps someday, certain kinds of network failures) to the Internet Archive * ARC file format. * * Assumption is that there is only one of these ARCWriterProcessors per * Heritrix instance. * * @author Parker Thompson */public class ARCWriterProcessor extends WriterPoolProcessorimplements CoreAttributeConstants, ARCConstants, CrawlStatusListener,WriterPoolSettings, FetchStatusCodes {	private static final long serialVersionUID = 1957518408532644531L;	private final Logger logger = Logger.getLogger(this.getClass().getName());        /**     * Default path list.     */    private static final String [] DEFAULT_PATH = {"arcs"};    /**     * @param name Name of this writer.     */    public ARCWriterProcessor(String name) {        super(name, "ARCWriter processor");    }        protected String [] getDefaultPath() {    	return DEFAULT_PATH;	}    protected void setupPool(final AtomicInteger serialNo) {		setPool(new ARCWriterPool(serialNo, this, getPoolMaximumActive(),            getPoolMaximumWait()));    }        /**     * Writes a CrawlURI and its associated data to store file.     *     * Currently this method understands the following uri types: dns, http,      * and https.     *     * @param curi CrawlURI to process.     */    protected void innerProcess(CrawlURI curi) {        // If failure, or we haven't fetched the resource yet, return        if (curi.getFetchStatus() <= 0) {            return;        }                // If no recorded content at all, don't write record.        long recordLength = curi.getHttpRecorder().getRecordedInput().getSize();        if (recordLength <= 0) {        	// getContentSize() should be > 0 if any material (even just            // HTTP headers with zero-length body) is available.         	return;        }                ReplayInputStream ris = null;         try {            if(shouldWrite(curi)) {                ris = curi.getHttpRecorder().getRecordedInput()                        .getReplayInputStream();                write(curi, recordLength, ris, getHostAddress(curi));            } else {                logger.info("does not write " + curi.toString());            }        } catch (IOException e) {            curi.addLocalizedError(this.getName(), e, "WriteRecord: " +                curi.toString());            logger.log(Level.SEVERE, "Failed write of Record: " +                curi.toString(), e);        } finally {            IOUtils.closeQuietly(ris);         }    }        protected void write(CrawlURI curi, long recordLength, InputStream in,        String ip)    throws IOException {        WriterPoolMember writer = getPool().borrowFile();        long position = writer.getPosition();        // See if we need to open a new file because we've exceeed maxBytes.        // Call to checkFileSize will open new file if we're at maximum for        // current file.        writer.checkSize();        if (writer.getPosition() != position) {            // We just closed the file because it was larger than maxBytes.            // Add to the totalBytesWritten the size of the first record            // in the file, if any.            setTotalBytesWritten(getTotalBytesWritten() +            	(writer.getPosition() - position));            position = writer.getPosition();        }                ARCWriter w = (ARCWriter)writer;        try {            if (in instanceof ReplayInputStream) {                w.write(curi.toString(), curi.getContentType(),                    ip, curi.getLong(A_FETCH_BEGAN_TIME),                    recordLength, (ReplayInputStream)in);            } else {                w.write(curi.toString(), curi.getContentType(),                    ip, curi.getLong(A_FETCH_BEGAN_TIME),                    recordLength, in);            }        } catch (IOException e) {            // Invalidate this file (It gets a '.invalid' suffix).            getPool().invalidateFile(writer);            // Set the writer to null otherwise the pool accounting            // of how many active writers gets skewed if we subsequently            // do a returnWriter call on this object in the finally block.            writer = null;            throw e;        } finally {            if (writer != null) {            	setTotalBytesWritten(getTotalBytesWritten() +            	     (writer.getPosition() - position));                getPool().returnFile(writer);            }        }        checkBytesWritten();    }        @Override    protected String getFirstrecordStylesheet() {        return "/arcMetaheaderBody.xsl";    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国v精品久久久网| 欧美一二三区在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 午夜精品aaa| 欧美日韩一区高清| 一区二区三区av电影| 欧美色欧美亚洲另类二区| 最新不卡av在线| 99国产欧美久久久精品| 一区二区三区免费| 欧美日韩高清在线播放| 日韩综合在线视频| 亚洲综合精品久久| 91.xcao| 国产精品99久久久| 亚洲免费成人av| 色婷婷久久久亚洲一区二区三区| 亚洲卡通欧美制服中文| 91精品国产免费| 成人美女视频在线观看| 亚洲自拍偷拍综合| 久久天堂av综合合色蜜桃网| 972aa.com艺术欧美| 乱中年女人伦av一区二区| 久久一区二区三区四区| 99精品国产热久久91蜜凸| 亚洲国产综合人成综合网站| 久久久精品国产免大香伊| 日本乱人伦一区| 国产成人午夜片在线观看高清观看| 亚洲日本在线观看| 久久日韩粉嫩一区二区三区| 在线观看中文字幕不卡| 国产99久久精品| 精品亚洲成a人| 99免费精品视频| 国产高清不卡一区| 另类欧美日韩国产在线| 三级久久三级久久| 亚洲免费高清视频在线| 中文字幕巨乱亚洲| 精品第一国产综合精品aⅴ| 在线不卡中文字幕播放| 91福利小视频| 在线视频观看一区| 色综合色综合色综合| 色狠狠桃花综合| 欧美羞羞免费网站| 色综合天天综合色综合av | 欧美大片日本大片免费观看| 91福利在线看| 欧美日韩一级视频| 日韩欧美国产午夜精品| 日韩免费高清av| 久久这里都是精品| 欧美激情一区二区三区不卡| 国产精品国产三级国产普通话三级| 久久蜜桃av一区二区天堂| 精品国产乱码久久久久久牛牛| 欧美精品一区男女天堂| 中文字幕欧美激情| 亚洲电影一区二区| 韩国av一区二区三区在线观看| 国产精品综合二区| 色成人在线视频| 精品国产乱码久久久久久免费| 中文字幕不卡在线观看| 一区二区三区四区在线| 午夜伊人狠狠久久| 国产一区二区三区免费看| 99热国产精品| 久久久久97国产精华液好用吗| 亚洲欧洲一区二区在线播放| 日韩成人av影视| 一本高清dvd不卡在线观看| 欧美成人官网二区| 一个色在线综合| 国产激情一区二区三区四区| 久久久久亚洲蜜桃| 亚洲va欧美va人人爽午夜| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一级不卡视频| 国产一区二区三区四| 91精品国产欧美日韩| 一区二区三区国产精品| 99国产精品一区| 中文字幕一区不卡| 国产成人精品aa毛片| 精品国产免费一区二区三区四区| 五月婷婷色综合| 欧美在线观看18| 色婷婷综合中文久久一本| 久久99精品久久久久久久久久久久| 亚洲国产成人高清精品| 色综合久久天天综合网| 中文字幕一区二区三区在线播放 | 亚洲黄色小视频| 99re成人在线| 亚洲自拍另类综合| 欧美日韩夫妻久久| 精品一区二区三区香蕉蜜桃 | 26uuu国产在线精品一区二区| 日韩电影在线一区二区| 337p亚洲精品色噜噜噜| 麻豆国产精品官网| 久久综合九色综合欧美98| 国产精品91xxx| 综合av第一页| 欧美午夜影院一区| 免费观看日韩av| 久久人人97超碰com| 99久久伊人网影院| 婷婷综合五月天| 久久久蜜臀国产一区二区| 91视频你懂的| 久久丁香综合五月国产三级网站| 久久女同精品一区二区| 色综合咪咪久久| 国产一区二区精品在线观看| 一区二区三区在线观看网站| 欧美一级精品在线| 99视频有精品| 麻豆精品新av中文字幕| 亚洲男同1069视频| 久久精品男人天堂av| 欧美色中文字幕| 99久久精品费精品国产一区二区| 麻豆国产精品一区二区三区 | 伊人色综合久久天天| 久久亚洲私人国产精品va媚药| 在线视频一区二区免费| 高清免费成人av| 久久精品二区亚洲w码| 亚洲制服丝袜一区| 综合久久国产九一剧情麻豆| 久久综合久久综合亚洲| 在线综合视频播放| 欧美日韩久久一区二区| 欧美大片一区二区三区| 在线免费观看日韩欧美| 91视频免费看| 欧洲一区在线观看| 在线精品国精品国产尤物884a| 91蜜桃在线免费视频| 91麻豆免费看片| 99久久99久久免费精品蜜臀| 99热精品一区二区| 91免费视频观看| 91黄色免费看| 欧美日韩国产天堂| 91精品国产综合久久香蕉麻豆| 在线不卡免费av| 日韩你懂的电影在线观看| 日韩欧美激情一区| 国产视频一区在线播放| 亚洲丝袜制服诱惑| 亚洲线精品一区二区三区| 日本欧美大码aⅴ在线播放| 蜜臀av性久久久久av蜜臀妖精| 黑人精品欧美一区二区蜜桃| 成人午夜视频网站| 色综合天天综合网天天看片| 在线不卡欧美精品一区二区三区| 欧美不卡一区二区三区四区| 国产欧美一区二区精品婷婷| 亚洲私人黄色宅男| 免费看黄色91| 成人激情小说网站| 欧美另类久久久品| 国产精品美女视频| 日日夜夜精品视频天天综合网| 国产九九视频一区二区三区| 一本久久a久久精品亚洲| 久久久噜噜噜久久中文字幕色伊伊| 亚洲日本在线天堂| 国产精品 欧美精品| 日韩精品在线网站| 亚洲国产另类av| 成人动漫一区二区三区| 精品久久一区二区| 日韩在线观看一区二区| 在线一区二区视频| 中文字幕日韩一区二区| 国产91露脸合集magnet| 日韩欧美高清在线| 日韩成人一级大片| 在线观看91av| 天天色天天操综合| 欧美日韩在线一区二区| 亚洲欧美视频一区| 9l国产精品久久久久麻豆| 中文字幕一区在线| 91麻豆免费看| 亚洲综合图片区| 日本久久电影网| 一区二区三区精品| 这里只有精品视频在线观看| 日韩电影在线免费观看| 7777精品伊人久久久大香线蕉最新版| 亚洲18影院在线观看|