Skip to content

Yet another programming solutions log

Sample bits from programming for the future generations.

Technologies Technologies
  • Algorithms and Data Structures
  • Java Tutorials
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Spock Framework Tutorial
  • Spring Framework
  • Bash Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Developer’s Tools
  • Productivity
  • About
Expand Search Form

Java read text file

farenda 2016-02-15 0

Problem:

How to read text file in Java? In this post we’re going to show the most straightforward way of reading text files using java.io.FileReader, thing that every Java developer needs to know!

Solution:

The solution is simple:

  • create an instance of java.io.FileReader,
  • wrap it in a java.io.BufferedReader to read lines,
  • read lines until null is returned.

And here’s the code:

package com.farenda.java.io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;

public class ReadTextFileExample {

    public static void main(String[] args) throws IOException {
        Map<String,Integer> highScores = new LinkedHashMap<>();

        String scoreFile = "highscores.csv";

        try (BufferedReader input = openReader(scoreFile)) {
            System.out.println("File header: " + readHeader(input));

            String row;
            while ((row = input.readLine()) != null) {
                parseRow(row, highScores);
            }
        }

        System.out.println("Read high scores:\n" + highScores);
    }

    private static BufferedReader openReader(String fileName)
            throws IOException {
        // Don't forget to add buffering to have better performance!
        return new BufferedReader(new FileReader(fileName));
    }

    private static String readHeader(BufferedReader input)
            throws IOException {
        return input.readLine();
    }

    private static void parseRow(String row, Map<String, Integer> highScores)
            throws IOException {
        String[] columns = row.split(",");
        highScores.put(columns[0], Integer.valueOf(columns[1]));
    }
}

Now, let’s say that we’ve got the following CSV file, as produced in the post about writing to text files:

$> cat highscores.csv
#name,points
user1,757
user2,482
user3,155
user4,269
user5,31
newUser,680

Now, when we run the above program it will print the following content, read from highscores.csv file:

File header: #name,points
Read high scores:
{user1=757, user2=482, user3=155, user4=269, user5=31, newUser=680}

In the next posts we’ll look at how to work with binary data using Java!

Share with the World!
Categories Java Tags java, java-io
Previous: Java write text file
Next: Java write binary file

Recent Posts

  • Java 8 Date Time concepts
  • Maven dependency to local JAR
  • Caesar cipher in Java
  • Java casting trick
  • Java 8 flatMap practical example
  • Linked List – remove element
  • Linked List – insert element at position
  • Linked List add element at the end
  • Create Java Streams
  • Floyd Cycle detection in Java

Pages

  • About Farenda
  • Algorithms and Data Structures
  • Bash Tutorial
  • Bean Validation Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Java 8 Streams and Lambda Expressions Tutorial
  • Java Basics Tutorial
  • Java Collections Tutorial
  • Java Concurrency Tutorial
  • Java IO Tutorial
  • Java Tutorials
  • Java Util Tutorial
  • Java XML Tutorial
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Software Developer’s Tools
  • Spock Framework Tutorial
  • Spring Framework

Tags

algorithms bash bean-validation books clojure design-patterns embedmongo exercises git gof gradle groovy hateoas hsqldb i18n java java-basics java-collections java-concurrency java-io java-lang java-time java-util java-xml java8 java8-files junit linux lists log4j logging maven mongodb performance quartz refactoring regex rest slf4j solid spring spring-boot spring-core sql unit-tests

Yet another programming solutions log © 2021

sponsored
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok