Deskripsi metode:
Baca data file sesuai dengan deskriptor file yang ditentukan FD dan tulis ke objek buffer yang ditunjukkan oleh buffer. Ini menyediakan antarmuka yang lebih mendasar daripada ReadFile.
Metode ini umumnya tidak disarankan untuk membaca file karena mengharuskan Anda untuk mengelola buffer dan pointer file secara manual, terutama ketika Anda tidak tahu ukuran file, yang bisa menjadi hal yang sangat merepotkan.
tata bahasa:
Salinan kode adalah sebagai berikut:
fs.read (fd, buffer, offset, length, position, [callback (err, bytesread, buffer)]))
Karena metode ini milik modul FS, perlu untuk memperkenalkan modul FS sebelum digunakan (var fs = membutuhkan ("fs"))
Menerima parameter:
Deskriptor File FS
Buffer, data akan ditulis.
Offset Write to Offset Buffer
Panjang (Integer) Menentukan panjang byte pembacaan file
Posisi (Integer) Menentukan posisi awal untuk membaca file. Jika item ini nol, data akan dibaca dari posisi pointer file saat ini.
Callback melewati tiga parameter, err, bytesread, dan buffer
・ Pengecualian err
・ Bytesread: Jumlah byte yang dibaca
・ Buffer: Objek buffer
contoh:
Salinan kode adalah sebagai berikut:
var fs = membutuhkan ('fs');
fs.open ('123.txt', 'r', function (err, fd) {
if (err) {
console.error (err);
kembali;
}
var buf = buffer baru (8);
fs.read (fd, buf, 0, 8, null, function (err, bytesread, buffer) {
if (err) {
console.log (err);
kembali;
}
console.log ('bytesread' +bytesread);
console.log (buffer);
})
})
Kode Sumber:
Salinan kode adalah sebagai berikut:
fs.read = fungsi (fd, buffer, offset, length, position, callback) {
if (! util.isbuffer (buffer)) {
// Antarmuka String Legacy (FD, Panjang, Posisi, Pengkodean, Callback)
var cb = argumen [4],
encoding = argumen [3];
assertencoding (encoding);
Posisi = Argumen [2];
panjang = argumen [1];
buffer = buffer baru (panjang);
Offset = 0;
callback = function (err, bytesread) {
if (! cb) kembali;
var str = (bytesread> 0)? buffer.tostring (encoding, 0, bytesread): '';
(CB) (err, str, bytesread);
};
}
wrapper fungsi (err, bytesread) {
// mempertahankan referensi ke buffer sehingga tidak bisa terlalu cepat.
callback && callback (err, bytesread || 0, buffer);
}
Binding.read (FD, buffer, offset, panjang, posisi, pembungkus);
};