File-writing是編程的重要方麵。每種編程語言都有一個well-defined文件模塊,可用於執行文件操作。 JavaScript和Node.js還具有文件模塊,該模塊提供了各種內置方法來對文件執行讀取,寫入,重命名,刪除和其他操作。 Node.js的文件模塊稱為fs模塊。默認情況下,fs模塊以“ UTF-8”編碼寫入文件。
fs.write()方法是fs模塊的內置應用程序編程接口,用於指定文件在緩衝區中要開始寫入的位置以開始寫入,以及將緩衝區的哪一部分寫出到文件中。僅通過使用字符串變量,也可以在沒有緩衝區的情況下使用fs.write()方法。下麵給出的示例演示fs.write()方法中緩衝區以及字符串的使用。它是一種異步方法。
用法:
- 使用緩衝區
fs.write(fd, buffer, offset, length, position, callback)
- 使用字符串
fs.write(fd, string, position, encoding, callback)
參數:該方法接受上述和以下描述的以下參數:
- fd:文件描述符是使用fs.open()方法打開文件所返回的值。它包含一個整數值。
- buffer:它包含緩衝區類型值,例如Buffer,TypedArray,DataView。
- offset:它是一個整數值,用於確定要寫入文件的緩衝區部分。
- length:它是一個整數值,用於指定要寫入文件的字節數。
- position:它是一個整數值,其位置是指距要寫入數據的文件開頭的偏移量。
- callback:它包含回調函數,該函數接收錯誤和寫入文件的字節數。
- string:將字符串寫入fd指定的文件。
- encoding:默認編碼值為UTF-8。
返回值:回調函數接收到錯誤或寫入的字節數。如果收到錯誤,則打印錯誤消息,否則打印寫入的字節數。
範例1:
// Node.js program to demonstrate the
// fs.write() method
// Include fs module
const fs=require("fs");
// File path where data is to be written
// Here, we assume that the file to be in
// the same location as the .js file
var path = 'input.txt';
// Declare a buffer and write the
// data in the buffer
let buffer = new Buffer.from('GeeksforGeeks:'
+ 'A computer science portal for geeks\n');
// The fs.open() method takes a "flag"
// as the second argument. If the file
// does not exist, an empty file is
// created. 'a' stands for append mode
// which means that if the program is
// run multiple time data will be
// appended to the output file instead
// of overwriting the existing data.
fs.open(path, 'a', function(err, fd) {
// If the output file does not exists
// an error is thrown else data in the
// buffer is written to the output file
if(err) {
console.log('Cant open file');
}else {
fs.write(fd, buffer, 0, buffer.length,
null, function(err,writtenbytes) {
if(err) {
console.log('Cant write to file');
}else {
console.log(writtenbytes +
' characters added to file');
}
})
}
})
輸出:
51 characters added to file
input.txt文件數據:
GeeksforGeeks:A computer science portal for geeks
說明:
成功執行程序後,緩衝區中存儲的數據將附加到所需文件中。如果該文件事先不存在,則會創建一個新文件並將數據附加到該文件中。
範例2:
// Node.js program to demonstrate the
// fs.write() method
// Include fs module
const fs=require("fs");
const str = "Hello world";
const filename = "input.txt";
fs.open(filename, "a", (err, fd)=>{
if(err){
console.log(err.message);
}else{
fs.write(fd, str, (err, bytes)=>{
if(err){
console.log(err.message);
}else{
console.log(bytes +' bytes written');
}
})
}
})
輸出:
11 bytes written
input.txt文件數據:
Hello world
說明:程序成功執行後,字符串值被寫入(附加)到所需文件中。
參考:
- https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback
- https://nodejs.org/api/fs.html#fs_fs_write_fd_string_position_encoding_callback
相關用法
- Node.js GM whitePoint()用法及代碼示例
- Node.js GM sharpen()用法及代碼示例
- Node.js GM threshold()用法及代碼示例
- Node.js GM thumbnail()用法及代碼示例
- Node.js GM transparent()用法及代碼示例
- Node.js GM resize()用法及代碼示例
- Node.js GM drawPolyline()用法及代碼示例
- Node.js GM charcoal()用法及代碼示例
- Node.js GM drawRectangle()用法及代碼示例
- Node.js GM drawPolygon()用法及代碼示例
注:本文由純淨天空篩選整理自Shreyasi_Chakraborty大神的英文原創作品 Node.js | fs.write() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。