CATEGORII DOCUMENTE |
Asp | Autocad | C | Dot net | Excel | Fox pro | Html | Java |
Linux | Mathcad | Photoshop | Php | Sql | Visual studio | Windows | Xml |
The Java library classes for IO are divided by input and output, as you can see by looking at the online Java class hierarchy with your Web browser. By inheritance, all classes derived from InputStream have basic methods called read( ) for reading a single byte or array of bytes. Likewise, all classes derived from OutputStream have basic methods called write( ) for writing a single byte or array of bytes. However, you won't generally use these methods; they exist so more sophisticated classes can use them as they provide a more useful interface. Thus, you'll rarely create your stream object by using a single class, but instead will layer multiple objects together to provide your desired functionality. The fact that you create more than one object to create a single resulting stream is the primary reason that Java's stream library is confusing.
It's helpful to categorize the classes by their functionality. The library designers started by deciding that all classes that had anything to do with input would be inherited from InputStream and all classes that were associated with output would be inherited from OutputStream.
InputStream's job is to represent classes that produce input from different sources. These sources can be (and each has an associated subclass of InputStream):
An array of bytes
A String object
A file
A "pipe," which works like a physical pipe: you put things in one end and they come out the other
A sequence of other streams, so you can collect them together into a single stream
Other sources, such as an Internet connection. (This will be discussed in a later chapter.)
In addition, the FilterInputStream is also a type of InputStream, to provide a base class for 'decorator' classes that attach attributes or useful interfaces to input streams. This is discussed later.
Table 10-1. Types of InputStream
Class |
Function |
Constructor Arguments |
How to use it |
||
ByteArray-InputStream |
Allows a buffer in memory to be used as an InputStream. |
The buffer from which to extract the bytes. |
As a source of data. Connect it to a FilterInputStream object to provide a useful interface. |
||
StringBuffer-InputStream |
Converts a String into an InputStream. |
A String. The underlying implementation actually uses a StringBuffer. |
As a source of data. Connect it to a FilterInputStream object to provide a useful interface. |
||
File-InputStream |
For reading information from a file. |
A String representing the file name, or a File or FileDescriptor object. |
As a source of data. Connect it to a FilterInputStream object to provide a useful interface. |
Piped-InputStream |
Produces the data that's being written to the associated PipedOutput-Stream. Implements the "piping" concept. |
PipedOutputStream |
As a source of data in multithreading. Connect it to a FilterInputStream object to provide a useful interface. |
||
Sequence-InputStream |
Coverts two or more InputStream objects into a single InputStream. |
Two InputStream objects or an Enumeration for a container of InputStream objects. |
As a source of data. Connect it to a FilterInputStream object to provide a useful interface. |
||
Filter-InputStream |
Abstract class which is an interface for decorators that provide useful functionality to the other InputStream classes. See Table 10-3. |
See Table 10-3. |
See Table 10-3. |
This category includes the classes that decide where your output will go: an array of bytes (no String, however; presumably you can create one using the array of bytes), a file, or a "pipe."
In addition, the FilterOutputStream provides a base class for 'decorator' classes that attach attributes or useful interfaces to output streams. This is discussed later.
Table 10-2. Types of OutputStream
Class |
Function |
Constructor Arguments |
How to use it |
||
ByteArray-OutputStream |
Creates a buffer in memory. All the data that you send to the stream is placed in this buffer. |
Optional initial size of the buffer. |
To designate the destination of your data. Connect it to a FilterOutputStream object to provide a useful interface. |
||
File-OutputStream |
For sending information to a file. |
A String representing the file name, or a File or FileDescriptor object. |
To designate the destination of your data. Connect it to a FilterOutputStream object to provide a useful interface. |
||
Piped-OutputStream |
Any information you write to this automatically ends up as input for the associated PipedInput-Stream. Implements the "piping" concept. |
PipedInputStream |
To designate the destination of your data for multithreading. Connect it to a FilterOutputStream object to provide a useful interface. |
||
Filter-OutputStream |
Abstract class which is an interface for decorators that
provide useful functionality to the other OutputStream classes. See Table |
See Table 10-4. |
See Table 10-4. |
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 688
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved