「スッキリわかるJava入門実践編第2版」を参考に下記の通りにしても、ログが出力されません。
this.writer.write(msg);の後にthis.writer.close()とすれば、firstだけ出力されるのですが、secondも出力する方法はありますでしょうか。

※C:\Users\hoge\Desktop\testlog.txtにはすでにある状態です。


MyLogger.java

public final class MyLogger {
    private static MyLogger theInstance;    /* 唯一のインスタンス保存用 */
    private FileWriter writer;
    private MyLogger() {
        try{
            this.writer = new FileWriter("C:\\Users\\hoge\\Desktop\\testlog.txt");
        }catch(IOException e) { /* エラー処理は省略 */ }
    }
    public void log(String msg) throws IOException {
        this.writer.write(msg);
    }
    public static MyLogger getInstance() {
        if(theInstance == null) theInstance = new MyLogger();
        return theInstance;
    }
}

Main.java

public class Main {
    public static void main(String[] args) throws IOException {

        MyLogger myLogger1 = MyLogger.getInstance();
        myLogger1.log("first");

        MyLogger myLogger2 = MyLogger.getInstance();
        myLogger2.log("second");

    }
}