当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fs.write()用法及代码示例


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

说明:程序成功执行后,字符串值被写入(附加)到所需文件中。

参考:




相关用法


注:本文由纯净天空筛选整理自Shreyasi_Chakraborty大神的英文原创作品 Node.js | fs.write() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。