How to Read From Text File in Java

There are many ways to read a text file in java. Permit's look at java read text file different methods one past i.

Java read text file

java read file, java read text file

There are many means to read a text file in coffee. A text file is fabricated of characters, so we tin can use Reader classes. There are some utility classes likewise to read a text file in java.

  1. Java read text file using Files grade
  2. Read text file in java using FileReader
  3. Coffee read text file using BufferedReader
  4. Using Scanner form to read text file in java

Now let's look at examples showing how to read a text file in java using these classes.

Java read text file using coffee.nio.file.Files

We can use Files class to read all the contents of a file into a byte array. Files grade besides has a method to read all lines to a list of string. Files class is introduced in Java vii and it's good if you want to load all the file contents. You should use this method only when you lot are working on pocket-sized files and you need all the file contents in memory.

                          Cord fileName = "/Users/pankaj/source.txt"; Path path = Paths.become(fileName); byte[] bytes = Files.readAllBytes(path); List<Cord> allLines = Files.readAllLines(path, StandardCharsets.UTF_8);                      

Read text file in java using java.io.FileReader

You lot tin use FileReader to get the BufferedReader and then read files line by line. FileReader doesn't support encoding and works with the arrangement default encoding, so information technology'southward not a very efficient way of reading a text file in java.

                          String fileName = "/Users/pankaj/source.txt"; File file = new File(fileName); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String line; while((line = br.readLine()) != null){     //procedure the line     System.out.println(line); }                      

Java read text file using java.io.BufferedReader

BufferedReader is good if you desire to read file line by line and process on them. It's skillful for processing the large file and it supports encoding too.

BufferedReader is synchronized, so read operations on a BufferedReader can safely exist done from multiple threads. BufferedReader default buffer size is 8KB.

                          String fileName = "/Users/pankaj/source.txt"; File file = new File(fileName); FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis, cs); BufferedReader br = new BufferedReader(isr);  String line; while((line = br.readLine()) != null){      //process the line      System.out.println(line); } br.close();                      

Using scanner to read text file in java

If you want to read file line by line or based on some java regular expression, Scanner is the course to use.

Scanner breaks its input into tokens using a delimiter blueprint, which by default matches whitespace. The resulting tokens may then exist converted into values of unlike types using the various next methods. The scanner class is non synchronized and hence not thread safe.

                          Path path = Paths.become(fileName); Scanner scanner = new Scanner(path); System.out.println("Read text file using Scanner"); //read line by line while(scanner.hasNextLine()){     //process each line     String line = scanner.nextLine();     System.out.println(line); } scanner.close();                      

Coffee Read File Example

Here is the instance course showing how to read a text file in java. The example methods are using Scanner, Files, BufferedReader with Encoding support and FileReader.

                          package com.journaldev.files;  import java.io.BufferedReader; import java.io.File; import coffee.io.FileInputStream; import coffee.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Listing; import java.util.Scanner;  public form JavaReadFile {      public static void chief(String[] args) throws IOException {         String fileName = "/Users/pankaj/source.txt";                  //using Java vii Files class to process small files, get complete file information         readUsingFiles(fileName);                  //using Scanner grade for large files, to read line by line         readUsingScanner(fileName);                  //read using BufferedReader, to read line past line         readUsingBufferedReader(fileName);         readUsingBufferedReaderJava7(fileName, StandardCharsets.UTF_8);         readUsingBufferedReader(fileName, StandardCharsets.UTF_8);                  //read using FileReader, no encoding support, not efficient         readUsingFileReader(fileName);     }      private static void readUsingFileReader(String fileName) throws IOException {         File file = new File(fileName);         FileReader fr = new FileReader(file);         BufferedReader br = new BufferedReader(fr);         String line;         Arrangement.out.println("Reading text file using FileReader");         while((line = br.readLine()) != naught){             //process the line             System.out.println(line);         }         br.close();         fr.close();              }      individual static void readUsingBufferedReader(String fileName, Charset cs) throws IOException {         File file = new File(fileName);         FileInputStream fis = new FileInputStream(file);         InputStreamReader isr = new InputStreamReader(fis, cs);         BufferedReader br = new BufferedReader(isr);         String line;         System.out.println("Read text file using InputStreamReader");         while((line = br.readLine()) != null){             //process the line             System.out.println(line);         }         br.close();              }      individual static void readUsingBufferedReaderJava7(Cord fileName, Charset cs) throws IOException {         Path path = Paths.get(fileName);         BufferedReader br = Files.newBufferedReader(path, cs);         String line;         System.out.println("Read text file using BufferedReader Coffee 7 improvement");         while((line = br.readLine()) != null){             //process the line             Arrangement.out.println(line);         }         br.close();     }      private static void readUsingBufferedReader(String fileName) throws IOException {         File file = new File(fileName);         FileReader fr = new FileReader(file);         BufferedReader br = new BufferedReader(fr);         String line;         System.out.println("Read text file using BufferedReader");         while((line = br.readLine()) != null){             //process the line             System.out.println(line);         }         //close resource         br.shut();         fr.close();     }      private static void readUsingScanner(String fileName) throws IOException {         Path path = Paths.become(fileName);         Scanner scanner = new Scanner(path);         System.out.println("Read text file using Scanner");         //read line by line         while(scanner.hasNextLine()){             //process each line             Cord line = scanner.nextLine();             System.out.println(line);         }         scanner.close();     }      private static void readUsingFiles(String fileName) throws IOException {         Path path = Paths.get(fileName);         //read file to byte array         byte[] bytes = Files.readAllBytes(path);         System.out.println("Read text file using Files class");         //read file to String list         @SuppressWarnings("unused") 		List<String> allLines = Files.readAllLines(path, StandardCharsets.UTF_8);         System.out.println(new String(bytes));     }  }                      

The choice of using a Scanner or BufferedReader or Files to read file depends on your project requirements. For case, if you are simply logging the file, yous can use Files and BufferedReader. If you are looking to parse the file based on a delimiter, you should use Scanner class.

Earlier I end this tutorial, I want to mention nearly RandomAccessFile. We can use this to read text file in java.

                          RandomAccessFile file = new RandomAccessFile("/Users/pankaj/Downloads/myfile.txt", "r"); String str;  while ((str = file.readLine()) != null) { 	System.out.println(str); } file.shut();                      

That's all for java read text file example programs.

prestonhirrity.blogspot.com

Source: https://www.journaldev.com/867/java-read-text-file

0 Response to "How to Read From Text File in Java"

Postar um comentário

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel