「Java8」printStackTraceでスタック・トレース情報を出力するサンプル

環境
JavaSE1.8
Eclipse 2019-12

書式
1.printStackTrace()

このスロー可能オブジェクトおよびそのバックトレースを標準エラー・ストリームに出力します。
このメソッドは、このThrowableオブジェクトのスタック・トレースを、System.errフィールドの値であるエラー出力ストリームで出力します。
printStackTraceメソッドは、「スタックトレース」を出力します。print + StackTraceです。

Throwableクラスの子クラスは、Throwableクラスを「継承」しているのでprintStackTraceメソッドを使用できます。
2.public static List<String> readAllLines(Path path) throws IOException

ファイルからすべての行を読み取ります。ファイルから取得したバイトは、UTF-8文字セットを使用して文字にデコードされます。

構文
catch (IOException e) { e.printStackTrace();}

使用例

package com.arkgame.study;

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class PtintStackTraceDemo {
      // ファイルパス
      private static final String FILE_PATH = "C:\\study\\arkgame";
      // ファイル名
      private static final String FILE_NAME = "test.csv";
      // 文字エンコーディング
      private static final String FILE_CHARSET = "UTF-8";

      public static void main(String[] args) {
            Path filePath = Paths.get(FILE_PATH, FILE_NAME);
            Charset cs = Charset.forName(FILE_CHARSET);

            try {
                  //ファイルからすべての行を読み取る
                  List<String> resLst = Files.readAllLines(filePath, cs);
                  System.out.println(resLst);

            } catch (IOException e) {
                  System.out.println("ファイルが存在しない");
                  // スタックトレースを出力
                  e.printStackTrace();
            }

      }

}

実行結果
1.指定ファイルが存在する場合、csvファイルの内容が表示されます

csvの内容:
[1234,東京 太郎,ヤマダロウ,品川区,3-5-210, 4567,大阪 太郎,ヤマダロウ,新宿区,3-2-302]

2.指定ファイルが存在しない場合、例外を発生します

ファイルが存在しない
java.nio.file.NoSuchFileException: C:\study\arkgame\test02.csv
      at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
      at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
      at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
      at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)

 

Java

Posted by arkgame