How to get a random line from a file in Java:
In this post, we will learn how to get a random line from a file in Java. The program will take the path of a file as input and print a line picking randomly from that file. With this program, you will learn how to read file contents and how to use Random module in Java.
Java program:
Below is the complete java program:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Random;
class Main {
private static String getRandomLine(String path) {
List<String> lines;
try {
lines = Files.readAllLines(Paths.get(path));
} catch (IOException e) {
e.printStackTrace();
return null;
}
Random random = new Random();
return lines.get(random.nextInt(lines.size()));
}
public static void main(String[] args) {
String path = new File("").getAbsolutePath() + "/src/sample.txt";
String randomLine = getRandomLine(path);
System.out.println("Random line : " + randomLine);
}
}
Explanation:
In this program,
- getRandomLine is a method that will return one random line from the file.
- path is the path to the file. I created a new file sample.txt with different contents. You can also create a different file and put that file path in the path variable.
- The readAllLines method reads all lines of a file and returns a list of strings.
- We are creating a Random object and using the nextInt method to get a random index value and returning that string at that index.
Output:
This will print a random line from the file.
You might also like:
- How Java Collections.rotate method works
- What is static method shadowing in Java
- 3 different ways to copy a string in Java
- Difference between findAny and findFirst of Java Stream API
- Java stream mapToInt explanation with examples
- Java program to check if the first character of a string is number/digit