Trusted answers to developer questions

What is output/input stream?

Get the Learn to Code Starter Pack

Break into tech with the logic & computer science skills you’d learn in a bootcamp or university — at a fraction of the cost. Educative's hand-on curriculum is perfect for new learners hoping to launch a career.

What is a stream?

In Java, a stream is a sequence of data composed of bytes. It’s synonymous to a stream because like a stream of water, it continues to flow. Based on the datatype that is transferred through the stream, they are classified as one of the following based on the byte:

  1. Output stream

  2. Input stream

Output stream

In order to write data to a destination, the Java application utilizes an output streammay be a peripheral device, socket, file, or an array.

OutputStream Schematic

OutputStream class

The OutputStream class is an abstract class. It is the super-class of all classes denoting an output-stream of bytes. An output-stream takes in output bytes and sends them to some reservoir.

Important methods of OutputStream

  1. public void write(int)throws IOException: This writes a byte to the most recent output stream.
  2. public void write(byte[])throws IOException: This writes an array of bytes to the current output stream.
  3. public void flush()throws IOException: This performs the function of flushing the current output stream.
  4. public void close()throws IOException: This closes the current output stream.
Output Stream Category

Because of the scope of this shot, we are restricted to FileOutputStream and FileInputStream.

Java FileOutputStream class

Java FileOutputStream is a type of output stream used for writing data to a destination file. When it is necessary to write primitive values into a file, use the FileOutputStream class. You can write byte-type as well as character-type data via FileOutputStream class, but FileWriter is preferred to FileOutputStream for character-type data.

FileOutputStream class declaration

The Java.io.FileOutputStream class is declared as: public class FileOutputStream extends OutputStream.

FileOutputStream class methods

  1. protected void finalize(): This wraps up the connection with the file output stream.
  2. void write(byte[] array): This writes array, length, and byte data from the byte array to the file output stream.
  3. void write(byte[] array, int off, int size): This writes size bytes from the byte array beginning at offset position straight to the file output stream.
  4. void write(int b): It is used to write the particular byte to the file output stream.
  5. File-Channel get-Channel(): It is used to return the file channel object related to the file output stream.
  6. void close(): This closes the file output stream.
import java.io.FileOutputStream;
public class FileOutputStreamExample {
public static void main(String args[]){
try{
FileOutputStream fileout=new FileOutputStream("D:\\testout.txt");
fout.write(65);
fileout.close();
System.out.println("success...");
}catch(Exception e){System.out.println(e);}
}
}
Output

InputStream class

The InputStream class is an abstract class. It is the parent-class of all classes that represents an input stream of bytes.

Important methods of InputStream

  1. public abstract int read()throws IOException: This method reads the preceding byte of data from the input stream. It returns a negative one at the end of the file.
  2. public int available()throws IOException: An estimated number of bytes is returned by this method so it can be read from the most recent input stream.
  3. public void close()throws IOException: This method uses the close keyword to close the latest input stream.
InputStream Hierarchy

Java FileInputStream class

The Java FileInputStream class acquires input bytes data from a file. It reads byte-associated dataraw bytes stream, such as image data, audio, video, etc., and can read character-stream data. Nonetheless, in order to read streams of characters, the FileReader class is recommended.

Java FileInputStream class declaration

The Java.io.FileInputStream class is declared as: public class FileInputStream extends InputStream.

Java FileInputStream class methods

  1. int available(): This method returns an estimated number of bytes that is readable from the input stream.
  2. int read(): This method reads the byte of data from the input stream.
  3. int read(byte[] byt): This reads up to byte.length bytes of data from the input stream.
  4. int read(byte[] byt, int off, int size): This method reads up to size bytes of data from the input stream.
  5. long skip(long m): This performs the function of skipping over to discard m bytes of data from the input stream.
  6. FileChannel getChannel(): This functions to return the special FileChannel object related to the file input stream.
import java.io.FileInputStream;
public class DataStreamExample {
public static void main(String args[]){
try{
FileInputStream fileinp=new FileInputStream("D:\\testout.txt");
int i=fileinp.read();
System.out.print((char)i);
fin.close();
}catch(Exception e){System.out.println(e);}
}
}

I hope the content of this shot, despite its brevity, answers some of the burning questions you had before reading through it.

RELATED TAGS

java

CONTRIBUTOR

Ngbede
Copyright ©2024 Educative, Inc. All rights reserved
Did you find this helpful?