CodeBlanks Logo Icon CodeBlanks

readFile

fs.readFile ile dosya okumayı öğrenirsin.

readFile ile oku

fs.readFile bir dosyayı asenkron olarak okur ve Promise döndürür. İkinci parametre olarak 'utf8' verirsen sonuç dize olarak gelir; verilmezse Buffer döner.

import fs from 'fs/promises';
const data = await fs.readFile('notes.txt', 'utf8');
console.log(data);

Burada readFile dosyanın tüm içeriğini belleğe yükler; küçük ve orta boy dosyalar için uygundur. Çok büyük dosyalarda createReadStream kullanmak bellek tüketimini azaltır. Dosya yoksa Promise reddedilir ve ENOENT hatası fırlatır.

Uygulama Sıra sende: readFile ile içerik oku

import fs from 'fs/promises' ile başla. Bir async function run() tanımla. Önce await fs.writeFile('notes.txt', 'merhaba dünya') ile dosyaya yaz. Sonra const data = await fs.readFile('notes.txt', 'utf8') ile oku ve console.log(data) ile yazdır. run() çağır.

Başlangıç kodu

index.js
// fs/promises içe aktar
// async function run tanımla
// writeFile ile yaz, readFile ile oku, console.log ile yazdır
// run'u çağır

Örnek çözüm

index.js
import fs from 'fs/promises';

async function run() {
  await fs.writeFile('notes.txt', 'merhaba dünya');
  const data = await fs.readFile('notes.txt', 'utf8');
  console.log(data);
}
run();

Beklenen çıktı

merhaba dünya

Hata yönetimi

Dosya yoksa fs.readFile reddedilen bir Promise döndürür ve ENOENT hatası fırlatır. Hatayı try/catch ile yakalayabilirsin; böylece dosya eksikse alternatif bir yol izlersin.

try {
  const data = await fs.readFile('yok.txt', 'utf8');
} catch (err) {
  console.error('dosya yok');
}

Bu örüntü, dosya işlemlerinde yaygındır. err.code alanı 'ENOENT' ise dosya bulunamadı demektir; başka bir hata koduysa farklı bir sorun vardır. Hataları yakalamak, uygulamanın çökmeden devam etmesini sağlar.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: readFile

Soru
const data = await fs.____('notes.txt', 'utf8');
console.log(data);
Cevap
const data = await fs.readFile('notes.txt', 'utf8');
console.log(data);

Açıklama: readFile ile dosyayı okursun.

2 fs.readFile çağrısında 'utf8' parametresi ne işe yarar?

  • Dosyayı sıkıştırır
  • Sonucun dize olarak dönmesini sağlar Doğru cevap
  • Dosyayı kilitler
  • İşlemi senkron yapar

Açıklama: utf8 parametresi sonuçu dize olarak verir.

3 readFile kavramları

Kavram Anlamı
readFile dosyayı okur
utf8 dize olarak döner
ENOENT dosya yok hatası

Başlangıç bölümündeki tüm dersler