نوشتن فایل با ند جی اس Node.js File Writing

18 اردیبهشت 1400 برچسب‌ها:, ,

آسان ترین راه برای نوشتن فایل با ند جی اس استفاده از 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 منظور اجرای کال بک است).

در این نمونه، یگ گزینه بهتر، نوشتن محتوای فایل با استریم هاست.