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
Bài liên quan
Different between fs.writeFile and fs.writeStream
https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback
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
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?
@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ỡ.