Java bufferedreader line by line

How to read contents of a File line by line using BufferedReader in Java ?

In this Java tutorial, you will learn how to read contents of a File line by line using BufferedReader class, with examples.

Read contents of a file line by line using BufferedReader

Following are the steps to read contents of a File line by line using BufferedReader:

Step 1: Load the file into buffer of BufferedReader.

BufferedReader br = new BufferedReader(new FileReader(filename));

BufferedReader provides an efficient way of reading characters, lines and arrays, from a character stream.

Step 2: Use java.io.BufferedReader.readLine() method to get a line and iterative calls to the method brings us the subsequent lines.

If stream from the specified file contains characters, readLine() returns characters till the encounter of new line or line feed. And if the stream is empty, i.e., no more characters left in the stream, the method returns null, which is an indication that whole contents of file have been read.

Читайте также:  Php script post get

Examples

1. Read File Line by Line using BufferedReader

In this example, we have a text file named samplefile.txt, and we will read contents of this file, line by line, using BufferedReader class.

samplefile.txt

This is first line. This is second line. This is third line. Welcome to www.tutorialkart.com.

Example.java

import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * Read contents of a File line by line using BufferedReader * www.tutorialkart.com */ public class Example < public static void main(String args[])< String filename = "samplefile.txt"; BufferedReader br = null; String line = ""; try < br = new BufferedReader(new FileReader(filename)); System.out.println("---------Contents of the file---------\n-------------------------------------\n"); while( (line = br.readLine()) != null)< System.out.println(line); >> catch (FileNotFoundException e) < System.err.println("Oops! Please check for the presence of file in the path specified."); e.printStackTrace(); >catch (IOException e) < System.err.println("Oops! Unable to read the file."); e.printStackTrace(); >> >

When the above program is run, output to the console is as shown in the following.

---------Contents of the file--------- ------------------------------------- This is first line. This is second line. This is third line. Welcome to www.tutorialkart.com.

Note : Provide the path to the file correctly. In this example, the file is placed at the root of Project Folder (of Eclipse Project).

Conclusion

In this Java Tutorial, we have seen how to use java.io.BufferedReader and its methodjava.io.BufferedReader.readLine() to read the contents of a file line by line.

Источник

How to read a File line by line in Java 8 ? BufferedReader lines() + Stream Examples

Hello guy, if you are wondering how to read a file line by line in Java but not sure which class to use then you have come to the right place. Earlier, I have showed you how to read Excel file in Java using Apache POI API and in this article, I am going to tell you about a useful method from BufferedReader class, the lines() method which can be used to read a file line by line. The BufferedReader.lines() is kind of interesting, letting you turn a BufferedReader into a java.util.Stream in Java 8. This is a very powerful thing as it allows you to tread a file as a stream and then you can apply all sorts of Stream methods like map, count, flatMap, filter, distinct, etc to apply the powerful transformation. We will actually see examples of those in this article by finding out the longest line from the file and printing each line of the file.

How to use BufferedReader.lines() + Stream in Java to Read a File Line by Line

Here are some useful examples by using the BufferedReader class and its lines() method which is newly added in Java 8 to find out the number of total lines from the file and printing the file line by line.

1. Print out the number of lines in a file:

This Java program can be used to find out the total number of lines in a given file using BufferedReader.lines() method which basically returns a stream and then we can use the count() method of Stream class to find out the total number of elements.

public static void main(String[] args) < try (BufferedReader reader = Files.newBufferedReader( Paths.get("myfile.txt"), StandardCharsets.UTF_8)) < System.out.println(reader.lines().count()); > catch (IOException ex) < >>

2. Print out all the lines:

This code can be used to read all the lines of a file in Java using BufferedReader.lines() method as shown below. You can see that we are using the forEach() method and method reference to print each line this is possible because the lines() method of BufferedReader returns a Stream and then you can use any Stream method to perform useful operations like counting or printing it element by element.

public static void main(String[] args) < try (BufferedReader reader = Files.newBufferedReader( Paths.get("myfile.txt"), StandardCharsets.UTF_8)) < reader.lines().forEach(System.out::println); > catch (IOException ex) < >>

3. Print out the longest line in a file

This example is a little bit elaborated and shows the power of Stream in Java. You can see that we first get the stream of lines using the lines() method and then mapped each line to their length to find out the longest line of the file.

public static void main(String[] args) < try (BufferedReader reader = Files.newBufferedReader( Paths.get("myfile.txt"), StandardCharsets.UTF_8)) < System.out.println(reader .lines() .mapToInt(String::length) .max() .getAsInt()); > catch (IOException ex) < >>

This is remarkable and considers doing this prior to Java 8, it wasn’t that easy and that’s why I really love streams. If you want to learn more about such gems, I highly recommend you to join these best Java Lambda and Functional Programming courses to learn Stream and Lambdas in-depth and become a better Java developer.

BufferedReader.lines() + Stream Examples in Java 8

Java Program to use BufferedReader.lines() method

The file used in this example is a Java manifest file created by Netbeans IDE for this program. Since the file is already in the classpath, we can access it by just specifying its name instead of the full path. The lines() method of BufferedReader returns a Stream with the lines read from this reader.

The best part of this method is that stream is lazily populated, only at the time of doing a terminal operation like forEach() for printing lines or count() to count the total number of lines.

manifest.mf
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; /** * Java Program to count number of lines in a file, * print each line of file and * find length of longest line in file. * * @author Javin */ public class BufferedReaderJava8Demo< public static void main(String args[]) < // Using BufferedReader lines() method to print number of // lines in a file try (BufferedReader reader = Files.newBufferedReader( Paths.get("manifest.mf"), StandardCharsets.UTF_8)) < long totalLinesInFile = reader.lines().count(); System.out.println("Total number of lines in file is : " + totalLinesInFile); > catch (IOException ex) < ex.printStackTrace(); > // BufferedReader Example to print all lines of a file in Java 8 try (BufferedReader reader = Files.newBufferedReader( Paths.get("manifest.mf"), StandardCharsets.UTF_8)) < System.out.println("Printing all lines in file manifest.mf using Java 8 streams"); reader.lines().forEach(System.out::println); > catch (IOException ex) < ex.printStackTrace(); > // BufferedReader lines() Examples in Java 8 // Let's find length of longest line in file try (BufferedReader reader = Files.newBufferedReader( Paths.get("manifest.mf"), StandardCharsets.UTF_8)) < long longestLineInFile = reader.lines() .mapToInt(String::length) .max() .getAsInt(); System.out.println("Length of longest line in file : " + longestLineInFile); > catch (IOException ex) < ex.printStackTrace(); > > > Output Total number of lines in file is : 3 Printing all lines in file manifest.mf using Java 8 streams Manifest-Version: 1.0 X-COMMENT: Main-Class will be added automatically by build Length of longest line in file : 58

Don’t be surprised by seeing the total number of lines in the file manifest.mf as 3, because every Java manifest file contains an empty line at the bottom. Though you see only two lines, in reality, it is three lines, which is also picked by Java.

In the next example also this is evident because you can see an empty line after «X-COMMENT». Last example of BufferedReader prints the length of the longest line in a file, which is the second line, 58 characters long.

That’s all about how to use BufferedReader in Java 8. By looking at these examples you can easily realize that Java 8 has put enormous power into BufferedReader. Now you can do a lot of things with files and text in only a couple of lines.

The last example shows the true power of Java 8, imagine how would you find the length of the longest line in a File before Java 8. Once you do that, just think again that what if a file is 4GB or 10GB large in size. In Java 8, you can use the parallelStream() instead of the stream() to process large files using multiple threads without writing any additional code.

  • How to sort the map by keys in Java 8? (example)
  • 5 Books to Learn Java 8 from Scratch (books)
  • What is the default method in Java 8? (example)
  • How to use Stream class in Java 8 (tutorial)
  • 10 Free Courses to learn Spring Framework for Beginners (courses)
  • How to convert List to Map in Java 8 (solution)
  • Top 5 Courses to learn Java 8 in depth (courses)
  • How to join String in Java 8 (example)
  • Top 5 Courses to become a full-stack Java developer (courses)
  • How to use filter() method in Java 8 (tutorial)
  • How to format/parse the date with LocalDateTime in Java 8? (tutorial)
  • Difference between abstract class and interface in Java 8? (answer)
  • 20 Examples of Date and Time in Java 8 (tutorial)
  • How to use peek() method in Java 8 (example)
  • How to sort the may by values in Java 8? (example)
  • 10 examples of Options in Java 8? (example)
  • 5 Courses to learn Functional Programming in Java (courses)

P. S. — If you are impressed with how Java 8 and Stream API makes coding easier in Java and want to learn Stream API in depth then you can also checkout this list of best Stream API online courses for Java developers. It contains best online courses to learn Stream API from Udemy and Pluralsight.

Источник

How to read contents of a File line by line using BufferedReader in Java ?

In this Java tutorial, you will learn how to read contents of a File line by line using BufferedReader class, with examples.

Read contents of a file line by line using BufferedReader

Following are the steps to read contents of a File line by line using BufferedReader:

Step 1: Load the file into buffer of BufferedReader.

BufferedReader br = new BufferedReader(new FileReader(filename));

BufferedReader provides an efficient way of reading characters, lines and arrays, from a character stream.

Step 2: Use java.io.BufferedReader.readLine() method to get a line and iterative calls to the method brings us the subsequent lines.

If stream from the specified file contains characters, readLine() returns characters till the encounter of new line or line feed. And if the stream is empty, i.e., no more characters left in the stream, the method returns null, which is an indication that whole contents of file have been read.

Examples

1. Read File Line by Line using BufferedReader

In this example, we have a text file named samplefile.txt, and we will read contents of this file, line by line, using BufferedReader class.

samplefile.txt

This is first line. This is second line. This is third line. Welcome to www.tutorialkart.com.

Example.java

import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * Read contents of a File line by line using BufferedReader * www.tutorialkart.com */ public class Example < public static void main(String args[])< String filename = "samplefile.txt"; BufferedReader br = null; String line = ""; try < br = new BufferedReader(new FileReader(filename)); System.out.println("---------Contents of the file---------\n-------------------------------------\n"); while( (line = br.readLine()) != null)< System.out.println(line); >> catch (FileNotFoundException e) < System.err.println("Oops! Please check for the presence of file in the path specified."); e.printStackTrace(); >catch (IOException e) < System.err.println("Oops! Unable to read the file."); e.printStackTrace(); >> >

When the above program is run, output to the console is as shown in the following.

---------Contents of the file--------- ------------------------------------- This is first line. This is second line. This is third line. Welcome to www.tutorialkart.com.

Note : Provide the path to the file correctly. In this example, the file is placed at the root of Project Folder (of Eclipse Project).

Conclusion

In this Java Tutorial, we have seen how to use java.io.BufferedReader and its methodjava.io.BufferedReader.readLine() to read the contents of a file line by line.

Источник

Оцените статью