回答編集履歴

1 追記

umyu

umyu score 5782

2018/01/24 22:31  投稿

```Java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Objects;
import java.util.Optional;
public class Q110417 {
   private static final File EXECUTABLE_PATH = Objects.requireNonNull(getExecutablePath());// アプリケーションの実行パス
   private static final File getExecutablePath() {
       File f = null;
       try {
           URL location = Q110417.class.getProtectionDomain().getCodeSource().getLocation();
           f = new File(location.toURI().getPath());
       } catch (java.net.URISyntaxException ex) {
           ex.printStackTrace();
       }
       return f;
   }
   public static void main(String[] args) {
       final int lineNumber = 3 - 1;// 行番号から-1を引いて0オリジンに変換
       // テキストのファイルパス
       Path path = Paths.get(EXECUTABLE_PATH.toString(), "sampretext.txt");
       try{
           try (BufferedReader br = Files.newBufferedReader(path)) {
               Optional<String> line = br.lines().skip(lineNumber).findFirst();
               System.out.println(line.get());
           }
       }catch(FileNotFoundException e){
           // エラーの場合は出力先はSystem.outではなく System.err
           // エラーの場合は出力先は標準出力(System.out)ではなく 標準エラー出力(System.err)
           System.err.println(e);
       }catch(IOException e){
           System.err.println(e);
       }
   }
}
```
■参考情報
- [Stream#skip](https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html#skip-long-)
- [Stream#findFirst](https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html#findFirst--)

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る