FileOutputStream fos = new FileOutputStream("log.txt"); // 默認覆蓋
PrintStream ps = new PrintStream(fos);
ps.println(logLine); // 每次運行只保留最後一條
FileOutputStream(String name) 默認 append = false,每次打開文件都會截斷(長度置 0),導致舊內容丟失。
FileOutputStream fos = new FileOutputStream("log.txt", true); // 第二參數 true
// 或
FileOutputStream fos = new FileOutputStream(new File("log.txt"), true);
public class Logger {
private final PrintStream ps;
public Logger(String file) throws FileNotFoundException {
this.ps = new PrintStream(new FileOutputStream(file, true), true);
}
public void log(String msg) {
ps.println("[" + LocalDateTime.now() + "] " + msg);
}
}
java.util.logging、Log4j2、Logback 等成熟日志框架,支持滾動、異步、分級。BufferedOutputStream 提升吞吐。System.lineSeparator() 而非硬編碼 \n。