「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)