
[ JavaStream.java ]
Java
1public static void main(String[] args) throws IOException{ 2 //1. X 3 Stream<String> bands = Files.lines(Paths.get( 4 "bands.txt"));//相対パス NoSuchFileException 5 /*2. O 6 Stream<String> bands = Files.lines(Paths.get( 7 "/Users/userName/eclipse-workspace/Java_study/ 8 src/Java_Gold/bands.txt"));*/ 9 bands 10 .sorted() 11 .filter(x -> x.length() > 13) 12 .forEach(System.out::println); 13 bands.close();
上記コードで、//1.
のコードでは NoSuchFileException となります。
//2.
のコードでは想定の結果が得られます。
このコードを記述した java ファイルと bands.txt は同じ階層にあるのに、//1.
の記述でエラーになるのはなぜでしょうか?
Exception in thread "main" java.nio.file.NoSuchFileException: bands2.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 Java_Gold.JavaStreams.main(JavaStreams.java:16)
確認のため、上記コードに
Java
1String path = new File(".").getAbsoluteFile().getParent(); 2System.out.println(path);
と追記すると、/Users/userName/eclipse-workspace/Java_study と表示されるので、//1.
を
Java
1Stream<String> bands = Files.lines(Paths.get("/src/Java_Gold/bands.txt"));
としてみても、NoSuchFileException です。
お知恵をいただけますと幸いです。


回答1件
あなたの回答
tips
プレビュー