import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Set;

public class PeriksaAkses {
    public static void main(String[] args) throws IOException {
        Path berkas = Path.of("data.txt");
        Files.writeString(berkas, "data contoh\n");

        System.out.println("isReadable   : " + Files.isReadable(berkas));
        System.out.println("isWritable   : " + Files.isWritable(berkas));
        System.out.println("isExecutable : " + Files.isExecutable(berkas));
        System.out.println("isReadable hilang.txt : "
                + Files.isReadable(Path.of("hilang.txt")));

        // Turunkan izin: hanya boleh dibaca pemiliknya.
        Set<PosixFilePermission> hanyaBaca = Set.of(PosixFilePermission.OWNER_READ);
        Files.setPosixFilePermissions(berkas, hanyaBaca);
        System.out.println("hanya baca   : isWritable = " + Files.isWritable(berkas));

        // Pulihkan izin tulis pemilik.
        Set<PosixFilePermission> tulis = Set.of(
                PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE);
        Files.setPosixFilePermissions(berkas, tulis);
        System.out.println("pulih        : isWritable = " + Files.isWritable(berkas));

        Files.delete(berkas);
    }
}
