What is an I/O filter in Java?

This article will help you understand what I/O filter in Java is.

The Java I/O Filter

The Java I/O Filter is inside java.io package. It provides sets of input and output streams used for reading and writing data to input and output sources. There are different types of classes in java.io, naming Input Stream, Output Stream, etc. Some of the important types are discussed below ?

Input Stream

The InputStream class of java.io is an abstract superclass which reads data from an input source. The source can be a file, a string, or anything that can contain data. This class is a programming interface for reading array of bytes, marking locations in the stream, skipping input bytes, determining number of readable bytes and resetting current position within the stream. While creation, an input stream is automatically opened. One can close a stream manually using the clone() method, or can close it by default when the object is garbage collected.

Some methods included in the InputStream class are ?

  • read()

  • read(byte[] array)

  • available()

  • mark()

  • reset()

  • markSupported()

  • skips()

  • close()

Syntax

InputStream object = new FileInputStream();

Example

File.txt Hello Readers!! Welcome to Java.

<div class="code-mirror  language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">import</span> <span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">FileInputStream</span><span class="token punctuation">;</span> <span class="token comment">// importing Input Stream class in java.io package</span>
<span class="token keyword">import</span> <span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">InputStream</span><span class="token punctuation">;</span>
<span class="token keyword">class</span> <span class="token class-name">InputStreamExample</span> <span class="token punctuation">{</span>  <span class="token comment">// class declaration</span>
   <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span> args<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>  <span class="token comment">// main function declaration</span>
      <span class="token keyword">byte</span><span class="token punctuation">[</span><span class="token punctuation">]</span> array <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token keyword">byte</span><span class="token punctuation">[</span><span class="token number">100</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// byte array initialization</span>
      <span class="token keyword">try</span> <span class="token punctuation">{</span><span class="token comment">// try block</span>
         <span class="token class-name">InputStream</span> input <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileInputStream</span><span class="token punctuation">(</span><span class="token string">"File.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Input Stream class object created</span>
         <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Available bytes in the file: "</span> <span class="token operator">+</span> input<span class="token punctuation">.</span><span class="token function">available</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         input<span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// reading byte from input stream</span>
         <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Data read from the file: "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token class-name">String</span> data <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">(</span>array<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// converting byte array into string</span>
         <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">;</span>
         input<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// closing the input stream</span>
      <span class="token punctuation">}</span>
      <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>  <span class="token comment">// catch block</span>
         e<span class="token punctuation">.</span><span class="token function">getStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div>

Output

Available bytes in the file: 32
Data read from the file:
Hello Readers!! Welcome to Java.

Output Stream

The OutputStream class of java.io is an abstract superclass which writes data to an output source. The source can be a file, a string, memory or anything that can contain data. It is a sibling to InputStream and can write data that is readable by InputStream. This class is a programming interface for writing array of bytes to the stram and flushing the stream. While creation, an output stream is automatically opened. One can close a stream manually using the clone() method, or can close it by default when the object is garbage collected.

Some methods included in the OutputStream class are ?

  • write()

  • write(byte[] array)

  • flush()

  • close()

Syntax

OutputStream object = new FileOutputStream();

Example

<div class="execute"></div><div class="code-mirror  language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">import</span> <span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">FileOutputStream</span><span class="token punctuation">;</span> <span class="token comment">// importing Output Stream class in java.io package</span>
<span class="token keyword">import</span> <span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">OutputStream</span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">OutputStreamExample</span> <span class="token punctuation">{</span>  <span class="token comment">// class declaration</span>
   <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span> args<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>  <span class="token comment">// main function declaration</span>
      <span class="token class-name">String</span> data <span class="token operator">=</span> <span class="token string">"Hello Readers!! Welcome to TutorialsPoint"</span><span class="token punctuation">;</span> <span class="token comment">// string variable storing line to be written in File.txt</span>
      <span class="token keyword">try</span> <span class="token punctuation">{</span>  <span class="token comment">// try block</span>
         <span class="token class-name">OutputStream</span> out <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FileOutputStream</span><span class="token punctuation">(</span><span class="token string">"File.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Output Stream class object created</span>
         <span class="token keyword">byte</span><span class="token punctuation">[</span><span class="token punctuation">]</span> dataBytes <span class="token operator">=</span> data<span class="token punctuation">.</span><span class="token function">getBytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Converts the string into bytes</span>
         out<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>dataBytes<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Writes data to the output stream</span>
         <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"Data is written to the file."</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         out<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Closes the output stream</span>
      <span class="token punctuation">}</span>
      <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>  <span class="token comment">// catch block</span>
         e<span class="token punctuation">.</span><span class="token function">getStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

Data is written to the file.

File

The File class is an abstract version of a file with directory path name. A path name can be relative or absolute in nature. There exists different methods for working with directories and files like create(), delete(), rename() etc.

Example

<div class="execute"></div><div class="code-mirror  language-java" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token keyword">import</span> <span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token operator">*</span><span class="token punctuation">;</span> <span class="token comment">// importing java.io package</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">FileExample</span> <span class="token punctuation">{</span>  <span class="token comment">// class declaration</span>
   <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span><span class="token punctuation">{</span>  <span class="token comment">// main function declaration</span>
      <span class="token keyword">try</span> <span class="token punctuation">{</span>  <span class="token comment">// try block</span>
         <span class="token class-name">File</span> file <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">File</span><span class="token punctuation">(</span><span class="token string">"File1.txt"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// creating new file</span>
         <span class="token keyword">if</span> <span class="token punctuation">(</span>file<span class="token punctuation">.</span><span class="token function">createNewFile</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>  <span class="token comment">// checking if new file is created or not</span>
            <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"New File is created!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token punctuation">} </span><span class="token keyword">else </span><span class="token punctuation">{</span>
            <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"File already exists."</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
      <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">IOException</span> e<span class="token punctuation">)</span> <span class="token punctuation">{</span>  <span class="token comment">// catch block</span>
         e<span class="token punctuation">.</span><span class="token function">printStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
   <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

New File is created!

RandomAccessFile

RandomAccessFile class is used to read and write on a random access file. A random access file has same behavioral characteristics as that of a large array of bytes. The file pointer can be called as a cursor which is used for read write operations. If the control reaches the end of the file before reading the desired number of bytes, then an EOFException is thrown.

StreamTokenizer

The StringTokenizer class is used to break a String into smaller parts known as tokens. It is one of the Legacy classes of Java. It doesn't provide the facility to differentiate numbers, quoted strings, identifiers etc. For example ?

Given String ? Hi Readers of this Article

After using String Tokenizer, the Tokens are: Hi, Readers, of, this, Article.

There are 3 types of Constructors defined in String Tokenizer class. They are ?

  • StringTokenizer (String str) This creates StringTokenizers with specified string.

  • StringTokenizer (String str, String delim) This creates StringTokenizers with specified string and delimiter. Delimiter are characters that split (separate) the string into tokens.

  • StringTokenizer (String str, String delim, boolean returnValue) This creates StringTokenizer with specified string, delimiter and returnValue. If return value is true or 1, delimiter characters are considered to be tokens. In case if return value is false or 0, delimiter characters split the string into separate tokens.

Updated on: 2022-09-05T12:33:42+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements