Reading contents from text files all at once using Java 8
On many occasions, data scientists have their data in text format. There are many different ways to read text file contents, and they each have their own pros and cons: some of them consume time and memory, while some are fast and do not require much computer memory; some read the text contents all at once, while some read text files line by line. The choice depends on the task at hand and a data scientist's approach to that task.
This recipe demonstrates how to read text file contents all at once using Java 8.
How to do it...
- First, create a
Stringobject to hold the path and name of the text file you are going to read:String file = "C:/dummy.txt";
- Using theÂ
get()method of thePathsclass, we get to the path of the file we are trying to read. The parameter for this method is theStringobject that points to the name of the file. The output of this method is fed to another method namedlines(), which is in theFilesclass. This method reads all lines from a file as aStream, and therefore, the output of this method is directed to aStreamvariable. Because ourdummy.txtfile contains string data, the generics of theStreamvariable is set toString.
The entire process of reading needs a try...catch block for attempts such as reading a file that does not exist or damaged and so on.
The following code segment displays the contents of our dummy.txt file. The stream variable contains the lines of the text file, and therefore, the forEach() method of the variable is used to display each line content:
try (Stream<String> stream = Files.lines(Paths.get(file))) {
stream.forEach(System.out::println); } catch (IOException e) {
System.out.println("Error reading " + file.getAbsolutePath());
}