package com.casic.swing.utils; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.Calendar; /** * @author Administrator */ public class LogToFile { public static void save(String log) { File rootDir = Constant.intRootDir(); File logFile = new File(rootDir + File.separator + "update.log"); //写入配置文件 try { FileOutputStream fos; if (!logFile.exists()) { logFile.createNewFile(); //首次写入获取 fos = new FileOutputStream(logFile); } else { //如果文件已存在,那么就在文件末尾追加写入 fos = new FileOutputStream(logFile, true); } OutputStreamWriter outStream = new OutputStreamWriter(fos, StandardCharsets.UTF_8); outStream.write(log); outStream.write("\r\n"); //写入完成关闭流 outStream.close(); } catch (IOException e) { e.printStackTrace(); } } public static String load() { try { File rootDir = Constant.intRootDir(); File logFile = new File(rootDir + File.separator + "update.log"); FileInputStream inputStream = new FileInputStream(logFile); InputStreamReader streamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(streamReader); StringBuilder data = new StringBuilder(); String s; while ((s = bufferedReader.readLine()) != null) { data.append(s); data.append("\r\n"); } if ("".equals(data.toString())) { return ""; } String result = data.toString().split("\r\n")[0]; /** * 5 Jan 11:20:24 ntpdate[807910]: adjust time server 114.118.7.161 offset -0.004064 sec * 5 Jan 11:24:06 ntpdate[824403]: no server suitable for synchronization found * */ String ntpDate = result.split("ntpdate")[0]; String[] split = ntpDate.split(" "); Calendar date = Calendar.getInstance(); String year = String.valueOf(date.get(Calendar.YEAR)); return year + "-" + monthConvert(split[1]) + "-" + dayConvert(split[0]) + " " + split[2]; } catch (IOException e) { e.printStackTrace(); } return ""; } private static String monthConvert(String engMonth) { switch (engMonth) { case "Jan": return "01"; case "Feb": return "02"; case "Mar": return "03"; case "Apr": return "04"; case "May": return "05"; case "Jun": return "06"; case "Jul": return "07"; case "Aug": return "08"; case "Sept": return "09"; case "Oct": return "10"; case "Nov": return "11"; case "Dec": return "12"; default: return "00"; } } private static String dayConvert(String day) { if (Integer.parseInt(day) < 10) { return "0" + day; } else { return day; } } }