import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;

public class TulisLaporan {
    public static void main(String[] args) throws IOException {
        Path laporan = Path.of("laporan.txt");

        try (BufferedWriter penulis = Files.newBufferedWriter(laporan, StandardCharsets.UTF_8)) {
            penulis.write("Laporan Stok Gudang");
            penulis.newLine();
            penulis.write("Baris kedua tanpa baris baru");
            penulis.flush(); // dorong ke disk sekarang juga
            System.out.println("flush dipanggil : true");
            penulis.newLine();
            penulis.write("Akhir laporan");
        }

        // BufferedReader dari InputStream + charset eksplisit.
        try (BufferedReader pembaca = new BufferedReader(new InputStreamReader(
                new FileInputStream("laporan.txt"), StandardCharsets.UTF_8))) {
            List<String> baris = pembaca.lines().toList();
            System.out.println("jumlah baris    : " + baris.size());
            System.out.println("baris pertama   : " + baris.get(0));
            System.out.println("baris terakhir  : " + baris.get(baris.size() - 1));
        }
    }
}
