نوشتن فایل با ند جی اس Node.js File Writing
آسان ترین راه برای نوشتن فایل با ند جی اس استفاده از fs.writeFile
می باشد.
برای مثال:
const fs = require('fs')
const content = 'Some content!'
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err)
return
}
//file written successfully
})
همچنین میتوان از ورژن sync هم استفاده کرد. fs.writeFileSync
:
const fs = require('fs')
const content = 'Some content!'
try {
const data = fs.writeFileSync('/Users/joe/test.txt', content)
//file written successfully
} catch (err) {
console.error(err)
}
اگر در فایل چیزی باشد، این API بصورت پیشفرض، محتوای فایل را با محتوای جدید جایگزین خواهد کرد!
شما میتوانید این حالت پیشفرض را با flag تغییر دهید:
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => {})
flag هایی که رایج هستند:
r+
: فایل را باز میکند. چه برای خواندن چه برای نوشتن!w+
: فایل را برای نوشتن یا خواندن باز میکند. stream را در ابتدای فایل قرار میدهد. اگر فایل وجود نداشته باشد ساخته میشود.
a
: فایل را برای نوشتن باز میکند و استریم را در اخر فایل میگذارد. فایل ساخته میشود اگر نباشد.
a+
: فایل برای خواندن یا نوشتن باز میکند. استریم در انتها قرار میگیرد. فایل ممکن است ساخته شود.
میتوانید flag های بیشتر را اطلاعات بدست اورید!
چسباندن به انتها در داخل فایل Append to a file
یک راه دستی برای append کردن fs.appendFile
است. (fs.appendFileSync
هم همتای آن است.)
const content = 'Some content!'
fs.appendFile('file.log', content, err => {
if (err) {
console.error(err)
return
}
//done!
})
استفاده از Stream ها
در تمام روش های بالا، تمام محتوا به فایل میرود، قبل از اینکه کنترل برنامه به برنامه بازگردد. (در ورژن async منظور اجرای کال بک است).
در این نمونه، یگ گزینه بهتر، نوشتن محتوای فایل با استریم هاست.