Apabila bekerja dengan operasi sistem fail Node.js, memilih kaedah yang betul untuk menulis fail boleh memberi kesan yang ketara kepada prestasi aplikasi anda. Mari terokai dua pendekatan biasa: fs.createWriteStream() dan fs.writeFileSync().
Feature | fs.createWriteStream(path).write(buffer) | fs.writeFileSync(path, buffer) |
---|---|---|
Synchronicity | Asynchronous | Synchronous |
Blocking | Non-blocking | Blocking |
Performance | Better for large files or frequent writes | Better for small, infrequent writes |
Memory Usage | More memory-efficient for large files | Loads entire content into memory |
Error Handling | Requires callback or event listeners | Throws errors directly |
Use Case | Streaming large files, real-time data | Quick, simple writes, small files |
Control Flow | Continues execution immediately | Waits until write is complete |
Backpressure Handling | Handles backpressure automatically | N/A |
Pendekatan berasaskan strim sesuai untuk mengendalikan fail besar atau apabila anda perlu menulis data dengan kerap:
const fs = require('fs') // Content to write const content = 'Hello, Node.js file system!' // Create a write stream const writeStream = fs.createWriteStream('example1.txt') // Write to the file writeStream.write(content, 'UTF8') // End the stream writeStream.end() // Handle finish event writeStream.on('finish', () => { console.log('Write completed.') }) // Handle error event writeStream.on('error', (err) => { console.error('An error occurred:', err.message) }) console.log('Program continues executing immediately.')
Untuk penulisan mudah, sekali sahaja dengan fail kecil, pendekatan segerak mungkin lebih mudah:
const fs = require('fs') // Content to write const content = 'Hello, Node.js file system!' try { // Write to the file synchronously fs.writeFileSync('example2.txt', content, 'UTF8') console.log('Write completed.') } catch (err) { console.error('An error occurred:', err.message) } console.log('This line waits for the write operation to complete.')
Kedua-dua kaedah mempunyai tempatnya dalam pembangunan Node.js. createWriteStream bersinar dalam senario yang melibatkan fail besar atau penulisan kerap, manakala writeFileSync sesuai untuk operasi fail yang ringkas dan kecil. Pilih berdasarkan kes penggunaan khusus anda, dengan mengambil kira faktor seperti saiz fail, kekerapan menulis dan keperluan prestasi.
Atas ialah kandungan terperinci Kaedah Penulisan Fail Node.js - createWriteStream vs writeFileSync. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!