Skip to content

M06 · Bab 1± 45 menitDraf AI

File dengan NIO (Path & Files)

Tujuan belajar

  • Membangun dan merapikan lokasi file dengan Path.of, resolve, normalize, dan relativize
  • Membaca dan menulis file teks dengan Files serta charset UTF-8 yang eksplisit
  • Memproses file besar secara streaming dengan Files.lines atau newBufferedReader di dalam try-with-resources
  • Membuat, menyalin, memindah, menghapus, dan menelusuri file, serta menangani NoSuchFileException
  • Mencegah path traversal saat menyimpan file upload

Prasyarat: Proyek Mini: Menjinakkan Kode Warisan

Kuis

5 soal · lulus bila minimal 70% benar

1.Apa output kode ini? Path p = Path.of("data/uploads/./2026/../2026/inv.pdf"); System.out.println(p.normalize());
2.Job malam memproses file log 8 GB per baris, lalu server kehabisan memori. Kodenya memakai Files.readAllLines(path). Perbaikan yang paling tepat?
3.Layanan upload menyimpan file dengan baseDir.resolve(fileName) memakai nama dari klien. Penyerang mengirim nama ../../etc/cron.d/x. Apa risikonya dan cara mencegahnya?
4.Kode try { Files.readString(Path.of("config.json")); } catch (NoSuchFileException e) {...} catch (IOException e) {...} — kapan blok catch (NoSuchFileException e) berjalan?
5.File CSV dari sistem kasir lama berisi Kafé, dan Files.readString(path, UTF_8) melempar MalformedInputException. Penyebab paling mungkin?

Jawab semua soal dulu (0/5)