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
String
object 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 thePaths
class, we get to the path of the file we are trying to read. The parameter for this method is theString
object that points to the name of the file. The output of this method is fed to another method namedlines()
, which is in theFiles
class. This method reads all lines from a file as aStream
, and therefore, the output of this method is directed to aStream
variable. Because ourdummy.txt
file contains string data, the generics of theStream
variable 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()); }