When Java reads or writes data, it opens a data stream, reads or writes the information, and closes the stream. 
Java uses the stream, reader, and writer classes for streamed data.
Java uses the stream, reader, and writer classes for streamed data.
Stream classes deal with general data input and output, whereas the reader and writer classes deal specifically with Unicode and Unicode Transformation Format (UTF) string input and output.
Data received from or sent to general I/O devices consists of bytes. However, Java can support higher-level I/O by piecing together bytes to represent other types of data, such as integers, characters, or strings.
For example, a sequence of four bytes can make up an 
int.
Java uses a hierarchy of classes to deal with different types of data. The 
InputStream and OutputStream are abstract classes that use low-level I/O streams to read bytes from or send them to I/O devices such as files, network sockets, and pipes. 
Low-level streams provide access directly to underlying bytes. High-level streams build upon low-level streams for additional capabilities.
The
The
FilterInputStream and FilterOutputStream classes extend InputStream and OutputStream respectively. They use high-level filter streams to read or write data, such as strings and ints, from byte streams.
All low-level stream classes inherit from either the 
Many stream input classes have a corresponding output class with similar methods. For example, the
InputStream or OutputStream abstract classes. Many stream input classes have a corresponding output class with similar methods. For example, the
FileInputStream class, which is the input class for files, has a corresponding output class, FileOutputStream.
The low-level streams that are direct descendants of the 
InputStream or OutputStream includeByteArrayInputStreamandByteArrayOutputStreamFileInputStreamandFileOutputStreamObjectInputStreamandObjectOutputStreamPipedInputStreamandPipedOutputStreamSequenceInputStream
ByteArrayInputStreamandByteArrayOutputStream- The 
ByteArrayInputStreamandByteArrayOutputStreamclasses read and write arrays of bytes with buffering. FileInputStreamandFileOutputStream- The 
FileInputStreamreceives data from a file in byte form. TheFileOutputStreamoutputs the data to a file. ObjectInputStreamandObjectOutputStream- The 
ObjectInputStreamdeserializes primitive data and objects that have been previously serialized using anObjectOutputStreamobject. PipedInputStreamandPipedOutputStream- The 
PipedInputStreamandPipedOutputStreamclasses work with thread communication. They enable you to create and connect two sides of a stream. SequenceInputStream- The 
SequenceInputStreamclass enables you to concatenate other input streams and to read from each of them, in turn. 
The corresponding 
InputStream and OutputStream subclasses have complementary structures and functions, including- constructors
 - read and write methods
 - reading and writing arrays
 
- constructors
 - The 
FileInputStreamandFileOutputStreamclasses have similar constructors.
The syntax for the constructors is
FileInputStream(String pathname)
FileInputStream(File file)
FileOutputStream(String pathname)
FileOutputStream(File file) - read and write methods
 - The 
FileInputStreamclass uses thereadmethod to read the next byte from a file. TheFileOutputStreamclass uses thewritemethod to write a byte to a file.
The syntax for these methods is
int read () throws IOException
void write (int <b>) throws IOException - reading and writing arrays
 - The 
FileInputStreamandFileOutputStreamclasses have complementary read and write methods for reading and writing arrays of bytes.
The syntax for these methods is
int read(byte[] b)
int read(byte[] b, int off, int len)
void write(byte[] b)
void write(byte[] b, int off, int len) 
Suppose you have code that reads information on sales from a file and prints it to the standard output. To do this, the code creates a 
DataInputStream. This class has an InputStream data member, which is inherited from FilterInputStream.    for (int i = 0; i < descs.length; i ++) {
      myData = new SalesData (descs[i], amounts[i], values[i]) ;
      writeSalesData ( myData ) ;
    }
    out.close() ;
    // Prepare to read it in
    in = new DataInputStream(new FileInputStream(fruitfile)) ;
    for (int i=0; i<6; i++) {
      myData = readSalesData () ;
      System.out.println("You sold " +
      myData.desc + " at $" +
      myData.value + " each. Amount was " + myData.amount);
    }
    in.close() ;
  }
The 
DataInputStream object wraps a FileInputStream instance. This enables native datatypes to be read in a machine-independent fashion. 
You can layer stream objects together to create streams capable of performing very specific I/O functions.
For example, you can extend
For example, you can extend
FilteredInputStream to create custom filters that discriminately read formatted data. Your custom filter can, in turn, be chained to other streams.






3 comments:
Are you sure you can consider ObjectInputStream a low-level stream class? I doubt it.
"Great blog created by you. I read your blog, its best and useful information. You have done a great work. Super blogging and keep it up.php jobs in hyderabad.
"
what a informative content
Post a Comment