解説動画
スリープを使って監視プログラムを作ります。
この例では、前回作った例外のログを監視しています。
■動画はこちら
■Youtube版の解説で使用しているソースコード
動画と一緒にこちらも参考にどうぞ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.text.SimpleDateFormat; import java.util.Date; public class ExceptionMonitorTest { //監視フォルダ private static final String TARGET_DIR = "R:\\log"; public static void main(String[] args) { try { while(true) { //現在時刻(時分秒)を取得 String time = new SimpleDateFormat("HH:mm:ss ").format(new Date()); //フォルダのファイルをリストアップ String[] files = new File(TARGET_DIR).list(); //監視中の件数を表示 System.out.println(time + "監視中... ファイル件数[" + files.length + "]"); //ログファイルができたら、ファイルを表示して終了 if(files.length > 0) { print(time, files); return ; } //10秒間スリーブ Thread.sleep(10000); } }catch(Exception e) { e.printStackTrace(); } } public static void print(String time, String[] files) throws Exception { //できたファイルの中身を表示 for(int i=0 ; i<files.length ; i++) { //できたファイル名 String fileName = files[i]; //ファイル名とファイルの中身を表示 System.out.println("-- " + fileName + "-----------------------"); try(FileReader fr = new FileReader(TARGET_DIR + "\\" + fileName); BufferedReader br = new BufferedReader(fr);) { String line = null; while((line = br.readLine()) != null) { System.out.println(line); } } } System.out.println(time + "監視終了..."); } } |