Java Program to Create String from Contents of a File

In this program, you'll learn different techniques to create a string from concents of a given file in Java.

Before we create a string from a file, we assume we have a file named test.txt in our src folder.

Here's the content of test.txt

This is a
Test file.

Example 1: Create String from file

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FileString {

    public static void main(String[] args) throws IOException {

        String path = System.getProperty("user.dir") + "\\src\\test.txt";
        Charset encoding = Charset.defaultCharset();

        List<String> lines = Files.readAllLines(Paths.get(path), encoding);
        System.out.println(lines);
    }
}

When you run the program, the output will be:

[This is a, Test file.]

In the above program, we use System's user.dir property to get the current directory stored in the variable path. Check Java Program to get the current directory for more information.

We used defaultCharset() for the file's encoding. If you know the encoding, use it, else it's safe to use default encoding.

Then, we used readAllLines() method to read all lines from the file. It takes path of the file and its encoding, and returns all the lines as a list as shown in the output.

Since, readAllLines may also throw an IOException, we have to define our main method as such

public static void main(String[] args) throws IOException

Example 2: Create string from a file

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FileString {

    public static void main(String[] args) throws IOException {

        String path = System.getProperty("user.dir") + "\\src\\test.txt";
        Charset encoding = Charset.defaultCharset();

        byte[] encoded = Files.readAllBytes(Paths.get(path));
        String lines = new String(encoded, encoding);
        System.out.println(lines);
    }
}

When you run the program, the output will be:

This is a
Test file.

In the above program, instead of getting a list of string, we get a single string, lines, with all the contents.

For this, we used readAllBytes() method to read all bytes from the given path. These bytes are then converted to a string using the default encoding.