import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class BacaByte {
    public static void main(String[] args) throws IOException {
        System.out.print("byte catatan.txt : ");
        try (FileInputStream masuk = new FileInputStream("catatan.txt")) {
            int b;
            while ((b = masuk.read()) != -1) {
                System.out.print(b + " ");
            }
        }
        System.out.println();

        // Format biner sederhana: satu byte panjang, lalu byte isi.
        String pesan = "Budi";
        try (FileOutputStream keluar = new FileOutputStream("pesan.bin")) {
            byte[] isi = pesan.getBytes(StandardCharsets.UTF_8);
            keluar.write(isi.length);
            keluar.write(isi);
        }

        try (FileInputStream masuk = new FileInputStream("pesan.bin")) {
            int panjang = masuk.read();
            byte[] isi = masuk.readNBytes(panjang);
            String hasil = new String(isi, StandardCharsets.UTF_8);
            System.out.println("panjang tertulis : " + panjang);
            System.out.println("isi pulih        : " + hasil);
        }
    }
}
