01/10/2018, 08:16

Fs module trong nodejs: Sự khác nhau giữa đọc ghi file thông thường và Stream

Mình đang đọc tài liệu Nodejs trên http://vietjack.com/nodejs. Có chỗ mình hơi thắc mắc một chút đó là module fs của nodejs. Có 2 cách để đọc ghi file(I/O):
1, Đọc ghi dữ liệu với các đối tượng Stream: createReadStream(), createWriteStream(),…
2, Đọc ghi với các phương thức thông thường: open(), readFile(),…

Vậy 2 cách này khác nhau ở điểm gì, hay để thực hiện những hành động đặc thù nào nhỉ? Cám ơn các bạn

rogp10 viết 10:19 ngày 01/10/2018
stackoverflow.com
Yijinsei

Different between fs.writeFile and fs.writeStream

node.js
asked by Yijinsei on 10:44AM - 07 Jan 12

https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback

Trần Hoàn viết 10:22 ngày 01/10/2018

Mình không biết bên nodejs có giống C# mình học không. stream thì là nó đọc ghi bằng buffer trong RAM, khi nào đọc xong, ghi xong trong buffer thì đóng stream bằng Close(), lúc đó mới ghi vào file trên đĩa cứng nen nhanh hơn nhưng mà tốn RAM hơn so với việc đọc ghi từng dòng file trực tiếp trên ổ cứng

Zhang Jike viết 10:30 ngày 01/10/2018

Mình cũng đang tìm hiểu về nodejs. Mình nghĩ khi createWriteStream thì sẽ tiết kiệm memory hơn là writeFile chứ nhỉ. Dùng stream để xử lý dữ liệu lớn. Khi dữ liệu đầu vào thay đổi hòa vào stream thì trong một thời điểm thì có 1 chunk được load vào ram thôi. Khi đọc ghi dữ liệu lớn thì readFile hay writeFile sẽ dồn hết vào ram 1 lúc. Không biết có đúng không?

Nguyễn Đức Hoàng viết 10:21 ngày 01/10/2018

@noz1995 @hibariwl
Mình bắt đầu bằng Python - cấp phát bộ nhớ động lên các khái niệm về bộ nhớ, ram, buffer… còn hạn chế, nên hơi bỡ ngỡ.

Bài liên quan
0