Node.js Dosya Sistemi ve İşlemleri

Node.js Modüller yazısında fs modülünden kısaca bahsetmiştik. fs modülü kısaca file I/O işlemleri için kullanılır. Bilgisayarın dosya sistemiyle çalışmaya olanak sağlar. fs açılımı ise file system'dır.

fs modülü ile yapılabilecek genel işlemler şu şekildedir:
  • Dosya okuma
  • Dosya yazma
  • Dosya oluşturma
  • Dosya güncelleme
  • Dosya silme
  • Dosya adlandırma

Dosya okuma 

Dosya okumak için fs.readFile() metotu kullanılır. Bu işlem asenkron bir şekilde gerçekleşir. Öncelikle metot yapısını inceleyelim:
fs.readFile(dosya [,ayarlar], callback)
Parametreler:
  • dosya -> dosya yolu ya da dosya ismi
  • ayarlar -> encoding türü ve bayrak eklemek için kullanılan parametre. Varsayılan olarak encoding türü null ve flag değeri r'dir.
  • callback -> err ve data adında iki parametre barındıran bir fonksiyondur.
Örnek kodu inceleyelim:
const fs = require('fs');

fs.readFile('deneme.txt', 'utf8', (err, data) => {
    if(err) throw err;

    console.log(data);
});
Proje dizininde yer alan deneme adında bir dosyayı okutup, konsola yazdırdık. Aynı işlemin sonucunu tarayıcı üzerinden görmek istersek şu şekilde bir kod yazabiliriz:
const http = require('http');
const fs = require('fs');

const server = http.createServer((req, res) => {
    fs.readFile('deneme.txt', 'utf8', (err, data) => {
        if(err) throw err;
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write(data);
        return res.end();
    });
}).listen(5000); 
Senkron şekilde dosya okumak için fs.readFileSync() metotu kullanılabilir.

Dosya oluşturma

Dosya oluşturmak için çeşitli metotlar vardır. Bunlar fs.appendFile(), fs.open() ve fs.writeFile() metotlarıdır.
const fs = require('fs');

fs.appendFile('yeni_dosya_1.txt', 'İcerik', (err) => {
    if(err) throw err;
    console.log('Dosya olusturuldu!');
});

fs.open('yeni_dosya_2.txt', 'w', (err, file) =>{
    if(err) throw err;
    console.log('Dosya olusturuldu!');
});

fs.writeFile('yeni_dosya_3.txt', 'İcerik', (err) => {
    if(err) throw err;
    console.log('Dosya olusturuldu!');
});
Elbette bu metotların her biri aynı işi yapmıyor. fs.appendFile() eğer dosya yoksa dosyayı oluşturur ya da varolan dosyadaki içeriğin devamına yeni içeriği ekler. fs.open() metotunda ise w flag kullanılır. Bu flag bu dosyanın yazma için kullanılacağı anlamına gelmektedir. fs.writeFile() fonksiyonu ise eğer o dosya varsa eski içerik silinir ve yeni içerik eklenir.

fs.writeFile() ve fs.appendFile() metotu ile aynı zamanda dosyayı güncelleyebildiğimizi görmüş oluruz. 

Dosyayı yeniden adlandırmak içinse fs.rename() metotu kullanılır.
fs.rename('yeni_dosya_2.txt', 'eski_dosya_2.txt', (err) => {
    if(err) throw err;
    console.log("Dosya ismi degisti");
});
Dosya silmek için ise fs.unlink() metotu kullanılır.
fs.unlink('eski_dosya_2.txt', (err) => {
    if(err) throw err;
    console.log('Dosya silindi');
});
Kaynaklar: 

Hiç yorum yok:

Yorum Gönderme