How to read a text-file resource into Java unit test?
Make sure you've stored the example.txt
in the src/test/resources
directory if you're using Maven or something similar for Gradle.
Essential InputStream
to String
Conversion
When we need a String out of our resource, we can convert an InputStream
into a String
like this:
This uses Java 8's streams. Make sure to specify character encoding (UTF-8 is typically a safe bet).
Libraries That Do the Heavy Lifting
Thank goodness for libraries like Apache Commons IO and Google Guava. They can make file operations a breeze.
When Size Does Matter: Dealing with Large Files
Working with large files? Let's avoid a game of OutOfMemoryError
whack-a-mole. You can read the file line by line or with streams. Be ready to handle cases when the file can't be found or is inaccessible.
The Future is Now: Java NIO
For Java 7 and onwards, the java.nio.file.Files
class offers methods for reading a file:
Architect the Robustness
Don't forget to handle potential errors and exceptions that might occur during file reading.
Clean Kitchen Philosophy: Close Your Resources
Prevent resource leakage by closing your resources. InputStream
is auto-closable, so it makes it easier. Here's how:
Was this article helpful?