Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

Belajar Bun Dasar #8: Membaca dan Menulis File

like emoticon 0
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Belajar Bun Dasar #8: Membaca dan Menulis File

Halo teman-teman semuanya, pada pembahasan sebelumnya kita telah mempelajari bagaimana membuat Routing Manual di Bun, di mana kita sudah bisa menangani berbagai endpoint dan memisahkan file route agar struktur proyek lebih rapi.

Pada materi kali ini, kita akan mempelajari salah satu kemampuan penting dari Bun, yaitu membaca dan menulis file di sisi server. Dalam Node.js, biasanya kita menggunakan modul fs untuk operasi file. Namun, di Bun semuanya lebih sederhana karena sudah tersedia API bawaan bernama Bun.file(), Bun.write(), dan Bun.readableStream() yang sangat mudah digunakan dan cepat.

Membaca File Teks

Untuk membaca isi file teks, kita dapat menggunakan Bun.file() dan text(). Buat file baru bernama read.js lalu isi seperti berikut:

const file = Bun.file("data.txt");
const content = await file.text();

console.log("Isi file:", content);

Kemudian buat file data.txt dengan isi berikut:

Halo, ini adalah file teks dari Bun!

Jalankan perintah:

bun run read.js

Output:

Isi file: Halo, ini adalah file teks dari Bun!

Fungsi Bun.file() mengembalikan objek file yang bisa dibaca sebagai teks, JSON, atau binary data. Kita juga bisa memeriksa apakah file benar-benar ada menggunakan file.exists().

Contoh:

const file = Bun.file("data.txt");

if (await file.exists()) {
  console.log("File ditemukan!");
} else {
  console.log("File tidak ditemukan!");
}

Membaca File JSON

Kita juga bisa membaca file JSON dengan sangat mudah.

data.json

{
  "nama": "Santri Koding",
  "bahasa": "JavaScript"
}

read-json.js

const file = Bun.file("data.json");
const content = await file.json();

console.log(content.nama);
console.log(content.bahasa);

Jalankan:

bun run read-json.js

Output:

Santri Koding
JavaScript

Metode .json() secara otomatis melakukan parsing isi file menjadi objek JavaScript, tanpa perlu memanggil JSON.parse() secara manual.

Menulis File Baru

Untuk menulis data ke dalam file, kita bisa menggunakan fungsi Bun.write().

Contoh:

write.js

await Bun.write("output.txt", "Data berhasil disimpan dengan Bun!");

console.log("File berhasil dibuat!");

Setelah dijalankan dengan:

bun run write.js

Bun akan membuat file output.txt berisi teks:

Data berhasil disimpan dengan Bun!

Jika file sudah ada sebelumnya, Bun akan menimpa isinya dengan data baru.

Menulis File JSON

Kita juga bisa menulis file dalam format JSON dengan mudah:

write-json.js

const data = {
  nama: "Santri Koding",
  framework: "Bun",
  versi: 1.0,
};

await Bun.write("data.json", JSON.stringify(data, null, 2));

console.log("File JSON berhasil dibuat!");

Output file data.json:

{
  "nama": "Santri Koding",
  "framework": "Bun",
  "versi": 1
}

Menambahkan (Append) Data ke File

Jika ingin menambahkan data ke dalam file yang sudah ada, kita bisa membaca isi file terlebih dahulu, lalu menulis ulang dengan tambahan data baru.

append.js

const file = Bun.file("log.txt");
let oldData = "";

if (await file.exists()) {
  oldData = await file.text();
}

const newData = oldData + "\n" + new Date().toISOString() + " - Log baru";
await Bun.write("log.txt", newData);

console.log("Log berhasil ditambahkan!");

Setiap kali kita menjalankan perintah ini, Bun akan menambahkan baris baru ke dalam file log.txt.

Membaca File Binary (Contoh: Gambar)

Bun juga mendukung pembacaan file biner seperti gambar, PDF, atau audio menggunakan arrayBuffer().

read-binary.js

const file = Bun.file("logo.png");
const buffer = await file.arrayBuffer();

console.log("Ukuran file:", buffer.byteLength, "byte");

Dengan cara ini, kita dapat mengolah data biner untuk kebutuhan upload, manipulasi gambar, atau pengiriman file melalui HTTP response.

Mengirim File lewat HTTP Response

Kita juga bisa menampilkan file statis (misalnya HTML atau gambar) melalui server Bun.

server.js

Bun.serve({
  port: 3000,
  async fetch(req) {
    const url = new URL(req.url);

    if (url.pathname === "/") {
      const file = Bun.file("index.html");
      return new Response(file);
    }

    if (url.pathname === "/logo") {
      const image = Bun.file("logo.png");
      return new Response(image, { headers: { "Content-Type": "image/png" } });
    }

    return new Response("404 - File tidak ditemukan", { status: 404 });
  },
});

Sekarang, jika kita akses:

  • http://localhost:3000/ → menampilkan halaman HTML
  • http://localhost:3000/logo → menampilkan gambar logo.png

Kesimpulan

Bun menyediakan API bawaan untuk membaca dan menulis file dengan sangat mudah, cepat, dan efisien. Dengan Bun.file() dan Bun.write(), kita dapat membaca file teks, JSON, maupun biner tanpa modul tambahan seperti fs. Selain itu, Bun juga mempermudah pengiriman file langsung lewat HTTP response.

Pada artikel berikutnya, kita akan mempelajari Menggunakan Database di Bun (MySQL dan SQLite) agar aplikasi kita dapat menyimpan dan mengelola data secara permanen.

Terima Kasih

Artikel ini dibaca sebanyak 708 kali

Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CEO & Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...