Java stream operations can be divided into byte streams and byte streams.
1. byte stream
All read Operations inherit from a common superclass java. io. InputStream class.
All write operations inherit from a common superclass java. io. OutputStream class.
Both InputStream and OutputStream are abstract classes.
InputStream has six low-level input streams:
Low-level stream
Stream usage
ByteArrayInputStream
Read data bytes from memory array
FileInputStream
Read data bytes from the local file system
PipedInputStream
Read data bytes from the thread Pipeline
StringBufferInputStream
Reads data bytes from a string.
SequenceInputStream
Reads data bytes from two or more low-level streams, and transfers data from one stream to another when it reaches the end of the stream.
System. in
Read data bytes from the user Console
InputStream also has a subclass: the filter stream java. io. FilterInputStream. The filter stream encapsulates the basic stream for more convenient usage.
The construction method of the FilterInputStream class is FilterInputStream (InputStream). An input stream filter is created on the specified input stream.
Common subclasses of FilterInputStream are as follows:
Filter input stream
Stream usage
BufferedInputStream
Access data by the buffer to improve efficiency
DataInputStream
Reads basic data types from the input stream, such as int, float, double, or even a line of text.
LineNumberInputStream
Maintain a counter Based on the line terminator of the translation. The counter indicates the row being read.
PushbackInputStream
Data bytes can be pushed back to the first part of the stream.
OutputStream (omitted)
The structure of OutputStream is basically the same as that of InputStream.
2. Ghost stream
Note: It was introduced in jdk1.1, And the byte stream above was introduced in jdk1.0. When it is used to process text data, it is better to select the limit stream than the word throttling. However, developers who only use the basic data type can continue to use byte streams.
All read Operations inherit from a common superclass java. io. Reader class.
All write operations inherit from a common superclass java. io. Writer class.
Reader and Writer are also abstract classes.
The common subclass of Reader is as follows:
Low-level Reader
Stream usage
CharArrayReader
Read data from character array
InputStreamReader
FileReader (subclass of InputStreamReader)
Read character sequences from local file systems
StringReader
Read character sequences from strings
PipedReader
Read character sequences from thread Pipelines
InputStreamReader:
InputStreamReader reads data from the input stream and connects the input stream to the reader. For example:
New InputStreamReader (System. in)
Constructor:
InputStreamReader (InputStream)
Use the default character encoding method to create an InputStreamReader.
InputStreamReader (InputStream, String)
Create an InputStreamReader using the named character encoding method.
Common filter readers:
Filter Reader
Stream usage
BufferedReader
Buffer Data Access to improve efficiency
LineNumberReader (subclass of BufferedReader)
Maintain a counter that indicates the row being read.
FilterReader (abstract class)
Provides a class that can be extended when a filter is created.
PushbackReader (subclass of FilterReader)
Allow text data to be pushed back to the reader stream
All these filter readers can pass in a Reader as a constructor parameter.
Writer (omitted)
The structure of Writer is basically the same as that of Reader.
Byte streams are the most basic, and forward streams are proposed to process characters.
New BufferedReader (new InputStreamReader (client. getInputStream (); explanation:
Client. getInputStream () is a byte stream;
InputStreamReader converts byte streams into bytes streams;
BufferedReader caches the primary stream so that you can directly read a row using methods such as readline ().