Difference betwixt FileReader vs FileInputStream inwards Java?

Even though both FileReader together with FileInputStream are used to read information from a file inwards Java, they are quite a different. The primary departure betwixt the FileReader together with FileInputStream is that 1 read information from character stream land other read information from a byte stream. The FileReader automatically converts the raw bytes into grapheme yesteryear using platform's default grapheme encoding. This agency y'all should usage this cast if y'all are reading from a text file which has same grapheme encoding equally the default one. If y'all tumble out to read a text file encoded inwards unlike grapheme encoding thus y'all should usage InputStreamReader with specified grapheme encoding. An InputStreamReader is a span betwixt byte current together with grapheme current together with tin lead maintain a FileInputStream equally a source. Though, it's worth remembering that it caches the character encoding which agency y'all cannot modify the encoding system programmatically.


As per my recruitment experience, I lead maintain frequently constitute Java developers skillful on multi-threading, collections together with basics but fare actually wretched on Java IO. They fighting to respond questions similar channel vs buffer, byte vs grapheme or IO vs NIO. If y'all inquire them to write code, they never lead maintain the exception, never closed the file together with hardly write production character code. An interview is a house to write your best code.



Brushing upwards your IO skills yesteryear reading Core Java for Really Impatient is too a skillful idea, equally 1 argue of lacking Java IO noesis is the lack of practice. This book, non solely explains things good but too plough over y'all lots of exercises to exercise well.

 are used to read information from a file inwards Java Difference betwixt FileReader vs FileInputStream inwards Java?




Differences betwixt FileReader together with FileInputStream

Here are a span of substitution differences betwixt a FileReader together with a FileInputStream inwards Java:

1) The commencement departure is inwards their type hierarchy, FileReader extends from Reader cast land FileInputStream is descendent of InputStream class.

2) The minute departure is inwards their purpose. The FileReader is meant for reading text information land FileInputStream is for reading binary data.

3) The diverse overloaded read() method of FileReader tin read 1 grapheme at a fourth dimension or multiple characters into an array land read() method of FileInputStream tin read 1 byte at a fourth dimension or multiple bytes inwards a byte array.

Here is a dainty slide which explains the departure betwixt FileReader together with FileInputStream quite well:

 are used to read information from a file inwards Java Difference betwixt FileReader vs FileInputStream inwards Java?


Java Program to Read File using FileReader vs FileInpustStream

Let's come across an illustration to acquire how to usage both FileReader together with FileInputStream classes to read information from text file. Remember, FileReader reads grapheme land FileInputStream reads bytes. In this program, I lead maintain simply read the information from the manifest.mf file which is a text file.


import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger;   /**  * Java Program to demonstrate departure betwixt  * FileReader together with FileInputStream inwards Java  *  * @author WINDOWS 8  */ public class IteratorRemoveTest {      public static void main(String args[]) throws IOException {                  // reading information using FileReader         System.out.println("Reding text file using FileReader");         try {             FileReader fr = new FileReader("manifest.mf");             int i = fr.read();                          while(i != -1){                 System.out.print((char)i);                 i = fr.read();             }                     } catch (FileNotFoundException ex) {             Logger.getLogger(IteratorRemoveTest.class.getName()).log(Level.SEVERE, null, ex);         }                           // reading information using FileInpustStream         System.out.println("Reding text file using FileInputStream");         try {                          FileInputStream fis = new FileInputStream("manifest.mf");             int b = fis.read();                          while(b != -1){                 System.out.print(b);                 b = fis.read();             }                      } catch (FileNotFoundException ex) {             Logger.getLogger(IteratorRemoveTest.class.getName()).log(Level.SEVERE, null, ex);         }       }  }  Output: Reding text file using FileReader Manifest-Version: 1.0 X-COMMENT: Main-Class volition hold upwards added automatically yesteryear construct  Reding text file using FileInputStream 779711010510210111511645861011141151051111105832494648131088456779777769788458327797105110456710897115115321191051081083298101329710010010110032971171161111099711610599971081081213298121329811710510810013101310BUILD SUCCESSFUL (total time: 0 seconds) 


That's all on the difference betwixt FileReader together with FileInputStream inwards Java. So, usage FileReader if y'all think to read streams of grapheme together with usage the FileInputSream if y'all desire to read streams of raw bytes. It's improve to usage FileReader for reading text files because it volition lead maintain help of converting bytes to characters but hollo upwards that FileReader uses the platform's default grapheme encoding. If y'all are reading a file which is encoded inwards a grapheme encoding other than the host's default char encoding thus y'all should usage the InputStreamReader.

Subscribe to receive free email updates:

0 Response to "Difference betwixt FileReader vs FileInputStream inwards Java?"

Posting Komentar