📄 tij0109.html
字号:
just adds line numbering, so you’ll probably attach an interface object.
</FONT><P></DIV>
</TD>
</TR>
<A NAME="Index1037"></A><A NAME="Index1038"></A><TR VALIGN="TOP">
<TD WIDTH=76 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>Pushback-InputStream</B></FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Has
a one byte push-back buffer so that you can push back the last character read.
</FONT><P></DIV>
</TD>
<TD WIDTH=144 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>InputStream</B></FONT><P></DIV>
</TD>
</TR>
<TR VALIGN="TOP">
<TD WIDTH=144 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Generally
used in the scanner for a compiler and probably included because the Java
compiler needed it. You probably won’t use this.
</FONT><P></DIV>
</TD>
</TR>
<a name="_Toc375545388"></a><a name="_Toc408018615"></a></TABLE></DIV>
<A NAME="Heading309"></A><H3 ALIGN=LEFT>
Writing
to an OutputStream
<P>with
FilterOutputStream
</H3>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">The
complement to
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataInputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
is
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataOutputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
which formats each of the primitive types and
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>String</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
objects onto a stream in such a way that any
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataInputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
on any machine, can read them. All the methods start with “write,”
such as
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>writeByte( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>writeFloat( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
etc.
</FONT><P></DIV><DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">If
you want to do true formatted output, for example, to the console, use a
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>PrintStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">.
This is the endpoint that allows you to print all of the primitive data types
and
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>String</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
objects in a viewable format as opposed to
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataOutputStream,</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
whose goal is to put them on a stream in a way that
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataInputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
can portably reconstruct them. The
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>System.out</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
static object is a
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>PrintStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">.</FONT><P></DIV><DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">The
two important methods in
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>PrintStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
are
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>print( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
and
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>println( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
which are overloaded to print out all the various types. The difference between
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>print( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
and
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>println( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
is that the latter adds a newline when it’s done.
</FONT><P></DIV><DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>BufferedOutputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
is a modifier and tells the stream to use buffering so you don’t get a
physical write every time you write to the stream. You’ll probably always
want to use this with files, and possibly console IO.
</FONT><P></DIV><DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>Table
10-4. Types of FilterOutputStream
</B></FONT><P></DIV>
<DIV ALIGN=LEFT><TABLE BORDER>
<COLGROUP>
<COL width="85">
<COL width="121">
<COL width="121">
</COLGROUP>
<TR VALIGN="TOP">
<TH WIDTH=85 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Class</FONT><P></DIV>
</TH>
<TH WIDTH=121 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Function</FONT><P></DIV>
</TH>
<TH WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Constructor
Arguments
</FONT><P></DIV>
</TH>
</TR>
<TR VALIGN="TOP">
<TH WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">How
to use it
</FONT><P></DIV>
</TH>
</TR>
<A NAME="Index1039"></A><A NAME="Index1040"></A><TR VALIGN="TOP">
<TD WIDTH=85 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>Data-OutputStream</B></FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Used
in concert with
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataInputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
so you can write primitives (int, char, long, etc.) to a stream in a portable
fashion.
</FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>OutputStream</B></FONT><P></DIV>
</TD>
</TR>
<TR VALIGN="TOP">
<TD WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Contains
full interface to allow you to write primitive types.
</FONT><P></DIV>
</TD>
</TR>
<A NAME="Index1041"></A><A NAME="Index1042"></A><TR VALIGN="TOP">
<TD WIDTH=85 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>PrintStream</B></FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">For
producing formatted output. While
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>DataOutputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
handles the
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><I>storage</I></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
of data,
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>PrintStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
handles
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><I>display</I></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">.</FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>OutputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
with optional boolean indicating that the buffer is flushed with every newline.
</FONT><P></DIV>
</TD>
</TR>
<TR VALIGN="TOP">
<TD WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Should
be the “final” wrapping for your
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>OutputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
object. You’ll probably use this a lot.
</FONT><P></DIV>
</TD>
</TR>
<A NAME="Index1043"></A><A NAME="Index1044"></A><TR VALIGN="TOP">
<TD WIDTH=85 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>Buffered-OutputStream</B></FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=2 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">Use
this to prevent a physical write every time you send a piece of data.
You’re saying “Use a buffer.” You can call
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>flush( )</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">
to flush the buffer.
</FONT><P></DIV>
</TD>
<TD WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><B>OutputStream</B></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
with optional buffer size.
</FONT><P></DIV>
</TD>
</TR>
<TR VALIGN="TOP">
<TD WIDTH=121 COLSPAN=1 ROWSPAN=1 VALIGN=TOP>
<DIV ALIGN=LEFT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">This
doesn’t provide an interface
</FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black"><I>per
se
</I></FONT><FONT FACE="Carmina Md BT" SIZE=3 COLOR="Black">,
just a requirement that a buffer is used. Attach an interface object.
</FONT><P></DIV>
</TD>
</TR>
<a name="_Toc375545389"></a><a name="_Toc408018616"></a></TABLE></DIV>
<HR><DIV ALIGN=LEFT><A NAME="fn47" HREF="#fnB47">[47]</A><FONT FACE="Carmina Md BT" SIZE=2 COLOR="Black">
In
</FONT><FONT FACE="Carmina Md BT" SIZE=2 COLOR="Black"><I>Design
Patterns
</I></FONT><FONT FACE="Carmina Md BT" SIZE=2 COLOR="Black">,
Erich Gamma
</FONT><FONT FACE="Carmina Md BT" SIZE=2 COLOR="Black"><I>et
al.
</I></FONT><FONT FACE="Carmina Md BT" SIZE=2 COLOR="Black">,
Addison-Wesley 1995. Described later in this book.
</FONT><P></DIV>
<div align="right">
<a href="tij_c.html">Contents</a> | <a href="tij0108.html">Prev</a> | <a href="tij0110.html">Next</a>
</div>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -