If you are using Java 7 java.nio classes to read a file, you may come across the NoSuchFileException if the file is not found. NoSuchFileException is a checked exception that was added to Java 7 and it extends FileSystemException that in turn extends IOException.
Example:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
String fileName = "/Users/proj/src/main/sample.txt";
try (Stream<String> linesStream = Files.lines(Paths.get(fileName))) {
linesStream.forEach(System.out::println);
} catch (NoSuchFileException ex) {
System.out.println("File not found:" + fileName);
ex.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
Exception stack trace:
java.nio.file.NoSuchFileException: /Users/proj/src/main/sample.txt
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at java.nio.file.Files.newBufferedReader(Files.java:2784)
at java.nio.file.Files.lines(Files.java:3744)
at java.nio.file.Files.lines(Files.java:3785)
at JavaReadTextFile.main(JavaReadTextFile.java:13)
Fix/Solutions:
- Make sure you have provided the absolute path of the file.
- Make sure the file exists.

Have Questions? Post them here!
- Create a Zip file using Java Code programmatically
- Eclipse : A java Runtime Environment (JRE) or Java Development kit (JDK) must be available
- How to Sort a LinkedList in Java
- Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver
- How to declare and initialize Array in Java Programming
- [Fix] java: integer number too large compilation error
- Java JDBC Connection with MySQL Driver in VS Code + Troubleshooting
- Reading .xls and .xlsx Excel file using Apache POI Java Library
- IntelliJ: Error: Could not find or load main class, java.lang.ClassNotFoundException
- How to get Client IP address using Java Code Example
- Truncate table using Java JDBC Example
- Struts 2 : There is no Action mapped for namespace [/] and action name [form] associated with context path [/proj]
- How to get file path in Idea IntelliJ IDE
- Java Generics explained with simple definition and examples
- Java SE 8 Update 301 available with various bug fixes and security improvements
- Java: Collect Stream as ArrayList or LinkedList
- Java JDBC Connection with PostgreSQL Driver Example
- How to check if Java main thread is alive
- How to fix Java nio NoSuchFileException wile reading a file
- Java 8+ get Day of the Week Examples with LocalDateTime, DateTime, ZonalDateTime and Instant classes
- Ways to Convert Integer or int to Long in Java
- [Java] How to throws Exception using Functional Interface and Lambda code
- [Fix] Spring Boot: mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
- Java: The value of the local variable string is not used
- Java JDBC: Insert Java 8 LocalDate and Time using PreparedStatement
- SharePoint CAML query error - The XML source is not correct - SharePoint
- Detect swipes on Android Activity - Android
- Android RatingBar Example - Android
- Disable Apps from Opening on Mac Startup (Login items) - MacOS
- Cant find System Preferences... under macOS Ventura Apple Menu? - MacOS
- How to upgrade Docker Desktop on Mac - MacOS
- How to migrate Kaizala to Microsoft Teams - Teams
- Generate Project Dependency tree using Gradle Command - Gradle