Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

communitycreator
java

What is output/input stream?

Ngbede Alike

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

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
Java FileOutputStream Example 1

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);}
}
}
Java FileInputStream example 1: to read a single character

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

RELATED TAGS

communitycreator
java

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring