Penerangan kaedah:
Baca data fail berdasarkan deskriptor fail fd yang ditentukan dan tulis objek penimbal yang ditunjuk oleh penimbal. Ia menyediakan antara muka peringkat lebih rendah daripada readFile.
Secara amnya tidak disyorkan untuk menggunakan kaedah ini untuk membaca fail, kerana ia memerlukan anda mengurus penimbal dan penuding fail secara manual, terutamanya apabila anda tidak mengetahui saiz fail, ini akan menjadi perkara yang sangat menyusahkan .
Tatabahasa:
fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])
Memandangkan kaedah ini tergolong dalam modul fs, modul fs perlu diperkenalkan sebelum digunakan (var fs= require(“fs”) )
Terima parameter:
Penerangan fail fs
penampan Penampan di mana data akan ditulis.
offset Offset ditulis pada penimbal
panjang (integer) Menentukan panjang fail dibaca dalam bait
kedudukan (integer) Menentukan kedudukan permulaan bacaan fail Jika item ini batal, data akan dibaca bermula dari kedudukan penuding fail semasa.
panggilan balik Panggilan balik melepasi tiga parameter, err, bytesRead, buffer
· err Pengecualian
· baitBaca: Bilangan bait dibaca
·penampan: objek penimbal
Contoh:
var fs = memerlukan('fs');
fs.open('123.txt' , 'r' , function (err,fd){
jika(err){
console.error(err);
Kembali;
}
var buf = Penampan baharu(8);
fs.read(fd, buf, 0, 8, null, function(err,bytesRead, buffer){
jika(err){
console.log(err);
Kembali;
}
console.log('bytesRead' bytesRead);
console.log(buffer);
})
})
Kod sumber:
fs.read = fungsi(fd, penimbal, offset, panjang, kedudukan, panggil balik) {
jika (!util.isBuffer(buffer)) {
// antara muka rentetan lama (fd, panjang, kedudukan, pengekodan, panggil balik)
var cb = hujah[4],
pengekodan = hujah[3];
assertEncoding(encoding);
kedudukan = hujah[2];
panjang = hujah[1];
penimbal = Penampan baharu(panjang);
Offset = 0;
panggil balik = function(err, bytesRead) {
Jika (!cb) kembali;
var str = (bytesRead > 0) ? buffer.toString(encoding, 0, bytesRead) : '';
(cb)(err, str, bytesRead);
};
}
pembungkus fungsi(err, bytesRead) {
// Kekalkan rujukan kepada penimbal supaya ia tidak boleh GC terlalu cepat.
panggil balik && panggil balik(err, bytesRead || 0, buffer);
}
binding.read(fd, buffer, offset, panjang, kedudukan, pembalut);
};