คำอธิบายวิธี:
การเขียนไปยังไฟล์ (ตามตัวอธิบายไฟล์) ฟังก์ชั่นคล้ายกับ fs.writefile () แต่วิธีนี้ให้การดำเนินการพื้นฐานมากขึ้น ขอแนะนำให้ใช้หลาย fs.writefile () ในแอปพลิเคชันจริง
วิธีนี้มาในสองรูปแบบ:
1. fs.write (fd, บัฟเฟอร์, ออฟเซ็ต, ความยาว [, ตำแหน่ง], [callback (err, byteswritten, buffer)])))))))
วิธีการเขียนนี้เขียนบัฟเฟอร์ไปยังไฟล์ (ค้นหาไฟล์ตามไฟล์ Descriptor FD)
2. fs.write (fd, data [, ตำแหน่ง [, การเข้ารหัส]], [callback (err, written, string))
วิธีการเขียนนี้เขียนข้อมูลไปยังไฟล์ (ค้นหาไฟล์ตามไฟล์ Descriptor FD) หากข้อมูลไม่ใช่ค่าอินสแตนซ์ของบัฟเฟอร์มันจะถูกส่งไปยังสตริง
ไวยากรณ์:
การคัดลอกรหัสมีดังนี้:
fs.write (fd, บัฟเฟอร์, ออฟเซ็ต, ความยาว [, ตำแหน่ง], [การโทรกลับ (Err, byteswritten, buffer)]))
fs.write (fd, data [, ตำแหน่ง [, การเข้ารหัส]], [callback (err, เขียน, สตริง)])
เนื่องจากวิธีนี้เป็นของโมดูล FS จึงจำเป็นต้องแนะนำโมดูล FS ก่อนการใช้งาน (var fs = require ("FS"))
รับพารามิเตอร์:
FD File Descriptor
บัฟเฟอร์ข้อมูลจะถูกเขียน การตั้งค่าขนาดบัฟเฟอร์นั้นควรมีหลาย 8 ซึ่งมีประสิทธิภาพมากกว่า
ออฟเซ็ตเขียนถึงออฟเซ็ตบัฟเฟอร์
ความยาว (จำนวนเต็ม) ระบุความยาวของไฟล์การอ่านไบต์
ตำแหน่ง (จำนวนเต็ม) ระบุตำแหน่งเริ่มต้นสำหรับการอ่านไฟล์ หากรายการนี้เป็นโมฆะข้อมูลจะถูกอ่านจากตำแหน่งของตัวชี้ไฟล์ปัจจุบัน
การโทรกลับผ่านพารามิเตอร์สามตัว Err, BytesRead และ Buffer
・ ข้อยกเว้นผิดพลาด
・ bytesRead: จำนวนไบต์อ่าน
・ บัฟเฟอร์: วัตถุบัฟเฟอร์
รูปแบบที่สอง:
การเข้ารหัสการเข้ารหัสอักขระ
การโทรกลับ
・ ข้อยกเว้นผิดพลาด
・ เขียนระบุจำนวนอักขระที่จะเขียนลงในไฟล์
・ สตริงส่งคืนบัฟเฟอร์
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
//fs.write(fd, บัฟเฟอร์, ออฟเซ็ต, ความยาว [, ตำแหน่ง], [การโทรกลับ (Err, byteswritten, buffer)]))))))
// ผลการดำเนินการ: byteswritten = 8, buffer = <buffer 00 00 00 01 00 00 00 00 00>
var fs = ต้องการ ('fs');
fs.open ('content.txt', 'a', ฟังก์ชั่น (err, fd) {
ถ้า (err) {
โยนเอ่อ;
-
var data = '123123123 Hello World';
var buf = บัฟเฟอร์ใหม่ (8);
fs.write (fd, buf, 0, 8, 0, function (err, byteswritten, buffer) {
ถ้า (err) {
โยนเอ่อ;
-
console.log (byteswritten);
console.log (บัฟเฟอร์);
fs.close (fd, function (err) {
ถ้า (err) {
โยนเอ่อ;
-
console.log ('ไฟล์ปิด');
-
-
-
//fs.write(fd, data [, ตำแหน่ง [, การเข้ารหัส]], [callback (err, written, string))
// ผลการดำเนินการ: เขียน = 21, String = <buffer 31 32 33 31 32 33 31 32 33 20 68 65 6C 6C 6F 20 77 BF 72 6C 64>
var fs = ต้องการ ('fs');
fs.open ('content.txt', 'a', ฟังก์ชั่น (err, fd) {
ถ้า (err) {
โยนเอ่อ;
-
var data = '123123123 Hello World';
fs.write (fd, data, 0, 'utf-8', ฟังก์ชั่น (err, เขียน, สตริง) {
ถ้า (err) {
โยนเอ่อ;
-
console.log (writeten);
console.log (สตริง);
fs.close (fd, function (err) {
ถ้า (err) {
โยนเอ่อ;
-
console.log ('ไฟล์ปิด');
-
-
-
ซอร์สโค้ด:
การคัดลอกรหัสมีดังนี้:
// การใช้งาน:
// fs.write (fd, บัฟเฟอร์, ชดเชย, ความยาว [, ตำแหน่ง], การโทรกลับ);
// หรือ
// fs.write (fd, string [, ตำแหน่ง [, การเข้ารหัส]], callback);
fs.write = function (fd, บัฟเฟอร์, ชดเชย, ความยาว, ตำแหน่ง, การโทรกลับ) {
if (util.isbuffer (บัฟเฟอร์)) {
// หากไม่มีตำแหน่งผ่านไปแล้วให้ถือว่าเป็นโมฆะ
if (util.isfunction (ตำแหน่ง)) {
การโทรกลับ = ตำแหน่ง;
ตำแหน่ง = null;
-
การโทรกลับ = MayBecallback (โทรกลับ);
var wrapper = function (err, เขียน) {
// เก็บข้อมูลอ้างอิงถึงบัฟเฟอร์เพื่อไม่ให้ GC'ed เร็วเกินไป
การโทรกลับ (เอ่อเขียน || 0, บัฟเฟอร์);
-
กลับ binding.writeBuffer (fd, บัฟเฟอร์, ชดเชย, ความยาว, ตำแหน่ง, เสื้อคลุม);
-
if (util.isstring (บัฟเฟอร์))
บัฟเฟอร์ += '';
if (! util.isfunction (ตำแหน่ง)) {
if (util.isfunction (ออฟเซ็ต)) {
ตำแหน่ง = ชดเชย;
ชดเชย = null;
} อื่น {
ตำแหน่ง = ความยาว;
-
ความยาว = 'utf8';
-
การโทรกลับ = MayBecallback (ตำแหน่ง);
position = function (err, เขียน) {
// ยังคงอ้างอิงถึงสตริงในกรณีที่อยู่ภายนอก
การโทรกลับ (เอ่อเขียน || 0, บัฟเฟอร์);
-
ส่งคืน binding.writestring (fd, บัฟเฟอร์, ชดเชย, ความยาว, ตำแหน่ง);
-