Emre

WFN Üye
Konular
1,714
Mesajlar
1,810
Çözüm
0
Ticaret Puanı
0
Üyelik
9 Ay 5 Gün
Konum
Samsun
Web Sitesi
Var
Alanı
WordPress Uzm.
1/1
Konu sahibi
JavaScript’te dosya okuma yöntemi kodun çalıştığı ortama bağlıdır: Tarayıcıda kullanıcının seçtiği dosyayı File.text() ile, Node.js ortamında ise dosya yolunu fs.readFile() işlevine vererek okuyabilirsiniz. Her iki yöntemde de metin içeriğini aldıktan sonra ekranda gösterebilir veya uygulamanızda işleyebilirsiniz.

Tarayıcıda kullanıcının seçtiği dosyayı okuma​


Tarayıcıdaki bir sayfa, kullanıcının bilgisayarındaki herhangi bir dosyayı yalnızca yolunu yazarak okuyamaz. Aşağıdaki örnekte kullanıcı dosyayı seçer; JavaScript de seçilen ilk dosyanın içeriğini UTF-8 metin olarak alıp sayfada gösterir. Okuma işlemi dosyayı kendiliğinden sunucuya yüklemez.

Aşağıdaki kodu okuma.html adıyla kaydedin ve tarayıcıda açın:

HTML:
<!doctype html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <title>Dosya okuma örneği</title>
</head>
<body>
  <label for="dosya">Metin dosyası seçin:</label>
  <input id="dosya" type="file" accept=".txt,text/plain">
  <pre id="sonuc"></pre>

  <script>
    const girdi = document.getElementById('dosya');
    const sonuc = document.getElementById('sonuc');

    girdi.addEventListener('change', async () => {
      const dosya = girdi.files[0];
      if (!dosya) return;

      try {
        const metin = await dosya.text();
        sonuc.textContent = metin;
      } catch (hata) {
        sonuc.textContent = 'Dosya okunamadı.';
        console.error(hata);
      }
    });
  </script>
</body>
</html>

Örneği denemek için içinde Merhaba dünya yazan UTF-8 kodlamalı bir metin dosyası oluşturun ve sayfada seçin. Dosyanın içeriği sayfada görünmelidir. await, okuma işlemi tamamlanana kadar sonucu bekler; textContent ise içeriği HTML olarak çalıştırmadan metin şeklinde gösterir.

Hiçbir şey görünmüyorsa dosyanın boş olup olmadığını kontrol edin. Bozuk karakterler görüyorsanız dosyanın kodlamasını kontrol edin: text() içeriği UTF-8 olarak yorumlar. Farklı bir kodlama kullanmanız gerekiyorsa kodlama adı belirtilebilen FileReader.readAsText() yöntemini kullanabilirsiniz. accept seçimi kolaylaştırır; dosyanın gerçekten metin olduğunu güvence altına almaz.

Node.js ile dosya yolundan okuma​


Node.js kurulu bir ortamda aynı klasöre ornek.txt adlı UTF-8 metin dosyası ve aşağıdaki oku.js dosyasını kaydedin. Terminalde bu klasöre geçip node oku.js komutunu çalıştırın:

JavaScript:
const { readFile } = require('node:fs/promises');
const { join } = require('node:path');

async function oku() {
  try {
    const yol = join(__dirname, 'ornek.txt');
    const metin = await readFile(yol, 'utf8');
    console.log(metin);
  } catch (hata) {
    console.error('Dosya okunamadı:', hata.message);
  }
}

oku();

Dosya içinde Merhaba dünya varsa terminalde bu metin görünür. __dirname dosya yolunu komutun çalıştırıldığı klasöre değil, oku.js dosyasının bulunduğu klasöre göre kurar. utf8 belirtilmezse readFile() metin yerine baytları içeren bir Buffer döndürür.

Hata alırsanız dosya adını ve konumunu kontrol edin; dosya bulunamıyorsa adı veya yolu düzeltin, erişim reddediliyorsa işlemi çalıştıran kullanıcının dosyayı okuma iznini kontrol edin. Bu örnek dosyanın tamamını belleğe alır. Büyük dosyalarda içeriği parça parça işlemek için Node.js tarafında createReadStream() kullanmak daha uygundur.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic