Node.js 파일 시스템 작업을 수행할 때 파일을 작성하는 올바른 방법을 선택하면 애플리케이션 성능에 큰 영향을 미칠 수 있습니다. fs.createWriteStream() 및 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 |
스트림 기반 접근 방식은 대용량 파일을 처리하거나 데이터를 자주 써야 하는 경우에 이상적입니다.
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.')
작은 파일을 사용한 간단한 일회성 쓰기의 경우 동기식 접근 방식이 더 간단할 수 있습니다.
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.')
두 가지 방법 모두 Node.js 개발에 적용됩니다. createWriteStream은 대용량 파일이나 빈번한 쓰기와 관련된 시나리오에서 빛을 발하는 반면, writeFileSync는 간단하고 작은 파일 작업에 적합합니다. 파일 크기, 쓰기 빈도, 성능 요구 사항 등의 요소를 고려하여 특정 사용 사례에 따라 선택하세요.
위 내용은 Node.js 파일 작성 방법 - createWriteStream 및 writeFileSync의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!