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)
- 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