?? multibytereplaycharsequence.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_07) on Sun May 06 17:59:49 GMT 2007 --><TITLE>MultiByteReplayCharSequence (Heritrix 1.12.1)</TITLE><META NAME="keywords" CONTENT="org.archive.io.MultiByteReplayCharSequence class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="MultiByteReplayCharSequence (Heritrix 1.12.1)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MultiByteReplayCharSequence.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../org/archive/io/GzippedInputStream.html" title="class in org.archive.io"><B>PREV CLASS</B></A> <A HREF="../../../org/archive/io/NoGzipMagicException.html" title="class in org.archive.io"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html?org/archive/io/MultiByteReplayCharSequence.html" target="_top"><B>FRAMES</B></A> <A HREF="MultiByteReplayCharSequence.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">org.archive.io</FONT><BR>Class MultiByteReplayCharSequence</H2><PRE>java.lang.Object <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>org.archive.io.MultiByteReplayCharSequence</B></PRE><DL><DT><B>All Implemented Interfaces:</B> <DD>java.lang.CharSequence, <A HREF="../../../org/archive/io/ReplayCharSequence.html" title="interface in org.archive.io">ReplayCharSequence</A></DD></DL><HR><DL><DT><PRE>public class <B>MultiByteReplayCharSequence</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../org/archive/io/ReplayCharSequence.html" title="interface in org.archive.io">ReplayCharSequence</A></DL></PRE><P>Provides a (Replay)CharSequence view on recorded streams (a prefix buffer and overflow backing file) that can handle streams of multibyte characters. If possible, use <A HREF="../../../org/archive/io/ByteReplayCharSequence.html" title="class in org.archive.io"><CODE>ByteReplayCharSequence</CODE></A>. It performs better even for the single byte case (Decoding is an expensive process). <p>Call close on this class when done so can clean up resources. <p>Implementation currently works by checking to see if content to read all fits the in-memory buffer. If so, we decode into a CharBuffer and keep this around for CharSequence operations. This CharBuffer is discarded on close. <p>If content length is greater than in-memory buffer, we decode the buffer plus backing file into a new file named for the backing file w/ a suffix of the encoding we write the file as. We then run w/ a memory-mapped CharBuffer against this file to implement CharSequence. Reasons for this implemenation are that CharSequence wants to return the length of the CharSequence. <p>Obvious optimizations would keep around decodings whether the in-memory decoded buffer or the file of decodings written to disk but the general usage pattern processing URIs is that the decoding is used by one processor only. Also of note, files usually fit into the in-memory buffer. <p>We might also be able to keep up 3 windows that moved across the file decoding a window at a time trying to keep one of the buffers just in front of the regex processing returning it a length that would be only the length of current position to end of current block or else the length could be got by multipling the backing files length by the decoders' estimate of average character size. This would save us writing out the decoded file. We'd have to do the latter for files that are > Integer.MAX_VALUE.<P><P><DL><DT><B>Version:</B></DT> <DD>$Revision: 4844 $, $Date: 2007-01-10 17:18:34 +0000 (Wed, 10 Jan 2007) $</DD><DT><B>Author:</B></DT> <DD>stack</DD></DL><HR><P><!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>Field Summary</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected static java.util.logging.Logger</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#logger">logger</A></B></CODE><BR> </TD></TR></TABLE> <!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>Constructor Summary</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#MultiByteReplayCharSequence(byte[], long, long, java.lang.String)">MultiByteReplayCharSequence</A></B>(byte[] buffer, long size, long responseBodyStart, java.lang.String encoding)</CODE><BR> Constructor for all in-memory operation.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#MultiByteReplayCharSequence(org.archive.io.ReplayInputStream, java.lang.String, java.lang.String)">MultiByteReplayCharSequence</A></B>(<A HREF="../../../org/archive/io/ReplayInputStream.html" title="class in org.archive.io">ReplayInputStream</A> contentReplayInputStream, java.lang.String backingFilename, java.lang.String characterEncoding)</CODE><BR> Constructor for overflow-to-disk-file operation.</TD></TR></TABLE> <!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>Method Summary</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> char</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#charAt(int)">charAt</A></B>(int index)</CODE><BR> </TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#close()">close</A></B>()</CODE><BR> Call this method when done so implementation has chance to clean up resources.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#finalize()">finalize</A></B>()</CODE><BR> </TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> int</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#length()">length</A></B>()</CODE><BR> </TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> java.lang.CharSequence</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#subSequence(int, int)">subSequence</A></B>(int start, int end)</CODE><BR> </TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> java.lang.String</CODE></FONT></TD><TD><CODE><B><A HREF="../../../org/archive/io/MultiByteReplayCharSequence.html#toString()">toString</A></B>()</CODE><BR> </TD></TR>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -