import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class SalinByte {
    public static void main(String[] args) throws IOException {
        Path sumber = Path.of("catatan.txt");
        Path tujuan = Path.of("salinan.txt");

        long total = 0;
        try (FileInputStream masuk = new FileInputStream("catatan.txt");
             FileOutputStream keluar = new FileOutputStream("salinan.txt")) {
            byte[] penampung = new byte[4];
            int dibaca;
            while ((dibaca = masuk.read(penampung)) != -1) {
                keluar.write(penampung, 0, dibaca);
                total += dibaca;
            }
        }

        System.out.println("total byte   : " + total);
        System.out.println("ukuran sama  : " + (Files.size(sumber) == Files.size(tujuan)));

        try (FileInputStream masuk = new FileInputStream("salinan.txt")) {
            System.out.print("byte pertama : ");
            for (int i = 0; i < 4; i++) {
                System.out.print((masuk.read() & 0xFF) + " ");
            }
            System.out.println();
        }
    }
}
