0Pricing
Java Academy · Pelajaran

Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan

Gunakan Files.readString, writeString, copy, move, dan delete untuk operasi file umum.

Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.

Kelas Berkas

Kelas java.nio.file.Files menyediakan metode utilitas statis untuk membaca, menulis, menyalin, memindahkan, dan mengkueri berkas. Kelas ini menggantikan kode pelat FileInputStream/FileOutputStream yang bertele-tele.

import java.nio.file.*;
import java.io.IOException;

Path file = Path.of("example.txt");
// All Files methods throw IOException — handle or propagate

Membaca Berkas

Metode modern untuk membaca seluruh isi berkas:

Path path = Path.of("notes.txt");

// Read as a single String (Java 11+)
String content = Files.readString(path);
System.out.println(content);

// Read as List of lines
List<String> lines = Files.readAllLines(path);
lines.forEach(System.out::println);

// Read as byte array
byte[] bytes = Files.readAllBytes(path);

Menulis Berkas

Tulis String atau kumpulan baris ke berkas dalam satu pemanggilan:

Path out = Path.of("output.txt");

// Write a String (overwrites by default)
Files.writeString(out, "Hello, NIO.2!");

// Write with StandardOpenOption.APPEND
Files.writeString(out, "\nAppended line", StandardOpenOption.APPEND);

// Write lines
List<String> lines = List.of("line1", "line2", "line3");
Files.write(out, lines);

Memeriksa Properti Berkas

Kueri metadata berkas tanpa membuka berkas:

Path path = Path.of("data.txt");

System.out.println(Files.exists(path));       // true/false
System.out.println(Files.isRegularFile(path)); // true if not dir
System.out.println(Files.isDirectory(path));   // true if dir
System.out.println(Files.isReadable(path));    // readable?
System.out.println(Files.size(path));          // bytes
System.out.println(Files.getLastModifiedTime(path));

Menyalin Berkas

Files.copy(source, target) menyalin berkas. Gunakan StandardCopyOption untuk mengatur perilakunya:

Path src = Path.of("original.txt");
Path dst = Path.of("backup.txt");

// Throws if destination exists (default)
Files.copy(src, dst);

// Overwrite if exists:
Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING);

// Copy preserving file timestamps:
Files.copy(src, dst, StandardCopyOption.COPY_ATTRIBUTES);

Memindahkan dan Mengganti Nama Berkas

Files.move() memindahkan atau mengganti nama berkas. Pemindahan atomik dapat dilakukan dengan ATOMIC_MOVE:

Path from = Path.of("temp.txt");
Path to   = Path.of("archive/report_2024.txt");

Files.move(from, to, StandardCopyOption.REPLACE_EXISTING);

// Rename in same directory:
Path renamed = from.resolveSibling("new_name.txt");
Files.move(from, renamed, StandardCopyOption.REPLACE_EXISTING);

Menghapus Berkas

Ada dua metode penghapusan — salah satunya melempar pengecualian jika berkas tidak ditemukan, sedangkan yang lainnya tidak:

Path file = Path.of("temp.txt");

// Throws NoSuchFileException if file doesn't exist:
Files.delete(file);

// Returns false if file didn't exist (no exception):
boolean deleted = Files.deleteIfExists(file);
System.out.println("Deleted: " + deleted);

Membuat Direktori

Buat direktori, termasuk semua direktori perantara:

Path dir = Path.of("output/reports/2024");

// Creates all missing intermediate directories:
Files.createDirectories(dir);

// Creates a single directory (fails if parent missing):
Files.createDirectory(Path.of("output/reports/2025"));

Berkas dan Direktori Sementara

Buat berkas sementara dengan aman — JVM dapat membersihkannya:

// Temp file in default temp directory
Path tmp = Files.createTempFile("prefix_", ".txt");
Files.writeString(tmp, "temp data");
System.out.println(tmp); // something like /tmp/prefix_12345.txt

// Temp directory
Path tmpDir = Files.createTempDirectory("work_");
System.out.println(tmpDir);

Mengalirkan Baris dengan Files.lines

Files.lines() mengembalikan Stream<String> tertunda — lebih baik daripada readAllLines untuk berkas besar karena tidak memuat semuanya ke memori:

try (var stream = Files.lines(Path.of("large.log"))) {
    long errorCount = stream
        .filter(l -> l.contains("ERROR"))
        .count();
    System.out.println("Errors: " + errorCount);
} // stream (and underlying reader) closed automatically

Membaca dari Sumber Daya Jalur Kelas

Gabungkan dengan getClass().getResourceAsStream() dan penyalinan NIO untuk memuat sumber daya:

try (var in = getClass().getResourceAsStream("/config.json")) {
    Path tmp = Files.createTempFile("config", ".json");
    Files.copy(in, tmp, StandardCopyOption.REPLACE_EXISTING);
    String json = Files.readString(tmp);
    System.out.println(json);
}

Pemeriksaan Singkat

Metode apa yang sebaiknya digunakan untuk membaca berkas log besar tanpa memuat semua baris ke memori secara bersamaan?

Ringkasan: Utilitas Berkas

Pokok-pokok penting:

  • Files.readString/readAllLines/readAllBytes — membaca seluruh berkas
  • Files.writeString/write — menulis string atau baris
  • Files.copy/move dengan StandardCopyOption — menyalin/mengganti nama/memindahkan
  • Files.delete/deleteIfExists — penghapusan aman
  • Files.lines — aliran tertunda untuk berkas besar (gunakan pola try-dengan-sumber daya)

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan” gratis?

Ya — teks lengkap “Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan”?

Gunakan Files.readString, writeString, copy, move, dan delete untuk operasi file umum. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Path: Merepresentasikan Lokasi File
  2. Utilitas Files: Membaca, Menulis, Menyalin, Memindahkan
  3. Menelusuri Pohon Direktori dengan Files.walk
  4. WatchService: Memantau Perubahan File
← Kembali ke Java Academy