Web Programlama

Web Programlama

DERS PROGRAMI
Web Programlama 401 Ders Programı

Dosya Sistemi (File System) Modülü

Lisans: Creative Commons 26.11.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Öntanımlı olarak, Node.js kurulumları içinde, dosya sistemi modülü (file system module) mevcut. fs adı verilen bu modül, Node.js’teki dosya işlemleri için bir temel çerçeve oluşturur. Aşağıda verilen örnek program, bellekte bulunan bir metin dosyasının içeriğini konsolda listeler.

exists() fonksiyonu belirtilen dosyanın mevcut olup olmadığını kontrol eder. Mevcutsa true, değilse false değerini gönderir.

stat() fonksiyonu ise belirtilen dosyanın byte cinsinden uzunluğunu bulur.

open() fonksiyonu ise dosyayı açmak için kullanılır. 'r' sembolü dosyanın okuma (read) amacıyla açıldığını gösterir. open() fonksiyonu, açılan yeni dosyaya erişimi gerçekleştirmek için, bir dosya tanımlayıcısı (file descriptor - fd) oluşturur.

Ayrıca dosyanın içeriğini tutmak için de bir tampon alan (buffer) tanımlanmaktadır. Tampon alanın büyüklüğü stats.size değişkeninde saklanan dosyanın büyüklüğüne eşitlenir. Sonra read() fonksiyonu ile dosya tampon alan içine okunur.

Tampon alan, bu durumda dosyadan okunan orijinal veriyi içermektedir. Dosyayı görüntüleyebilmek için, veri önce UTF-8 kodu ile oluşturulmuş string'e dönüştürülür, sonra da konsola yazılır. İşlem bitince dosya kapatılır. Programın listesi aşağıdadır:

var fs = require("fs");
var DOSYA_ADI = "gyDosya.txt";
 
fs.exists(DOSYA_ADI, function(exists) {

  if (exists) {
    fs.stat(DOSYA_ADI, function(error, stats) {
      fs.open(DOSYA_ADI, "r", function(error, fd) {
        var buffer = new Buffer(stats.size);
 
        fs.read(fd, buffer, 0, buffer.length, null, function(error, bytesRead, buffer) {
          var VERI = buffer.toString("utf8", 0, buffer.length);
 
          console.log(VERI);
          fs.close(fd);
        });
      });
    });
  }
});

Dosyadan okuma yapan örnek program, aşağıdaki gibi çalıştırılırsa, dosya içeriği konsolda görüntülenecektir.