国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

node.js中的fs.write方法使用說(shuō)明

2019-11-20 13:44:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

方法說(shuō)明:

寫入文件(根據(jù)文件描述符),功能與 fs.writeFile() 類似,但該方法提供更底層的操作,實(shí)際應(yīng)用中建議使用多 fs.writeFile()  。

該方法有兩種形式:

1、fs.write(fd, buffer, offset, length[, position], [callback(err, bytesWritten, buffer)])

這種寫法將buffer寫入文件(根據(jù)文件描述符fd來(lái)查找文件)。

2、fs.write(fd, data[, position[, encoding]], [callback(err, written, string)])

這種寫法將數(shù)據(jù)data寫入文件(根據(jù)文件描述符fd來(lái)查找文件)。如果數(shù)據(jù)不是一個(gè)緩沖區(qū)的實(shí)例值將被強(qiáng)制轉(zhuǎn)換為一個(gè)字符串。

語(yǔ)法:

復(fù)制代碼 代碼如下:

fs.write(fd, buffer, offset, length[, position], [callback(err, bytesWritten, buffer)])

fs.write(fd, data[, position[, encoding]], [callback(err, written, string)])

由于該方法屬于fs模塊,使用前需要引入fs模塊(var fs= require(“fs”) )

接收參數(shù):

fd     文件描述符。

buffer      緩沖區(qū),數(shù)據(jù)將被寫入。buffer尺寸的大小設(shè)置最好是8的倍數(shù),效率較高。

offset      buffer寫入的偏移量

length     (integer)   指定文件讀取字節(jié)數(shù)長(zhǎng)度

position   (integer)   指定文件讀取的起始位置,如果該項(xiàng)為null,將從當(dāng)前文件指針的位置開(kāi)始讀取數(shù)據(jù)。

callback      回調(diào)傳遞了三個(gè)參數(shù),err, bytesRead, buffer

? err  異常

? bytesRead:讀取的字節(jié)數(shù)

? buffer:緩沖區(qū)對(duì)象

第二種形式:

encoding     字符編碼

callback

? err            異常

? written     指定多少字符數(shù)將被寫入到文件。

? string       返回的Buffer

例子:

復(fù)制代碼 代碼如下:

//fs.write(fd, buffer, offset, length[, position], [callback(err, bytesWritten, buffer)])
//執(zhí)行結(jié)果:bytesWritten = 8 , buffer = <Buffer 00 00 00 01 00 00 00 00>
 
var fs = require('fs');
fs.open('content.txt', 'a', function(err,fd){
 if(err){
  throw err;
 }
 var data = '123123123 hello world';
 var buf = new Buffer(8);
 fs.write(fd, buf, 0, 8, 0, function(err, bytesWritten, buffer){
  if(err){
   throw err;
  }
  console.log(bytesWritten);
  console.log(buffer);
 
  fs.close(fd,function(err){
   if(err){
    throw err;
   }
   console.log('file closed');
  })
 })
})
 
//fs.write(fd, data[, position[, encoding]], [callback(err, written, string)])
//執(zhí)行結(jié)果:written = 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 = require('fs');
fs.open('content.txt', 'a', function(err,fd){
 if(err){
  throw err;
 }
 var data = '123123123 hello world';
 fs.write(fd, data, 0 , 'utf-8', function(err, written, string){
  if(err){
   throw err;
  }
  console.log(written);
  console.log(string);
 
  fs.close(fd,function(err){
   if(err){
    throw err;
   }
   console.log('file closed');
  })
 })
})

源碼:

復(fù)制代碼 代碼如下:

// usage:
// fs.write(fd, buffer, offset, length[, position], callback);
// OR
// fs.write(fd, string[, position[, encoding]], callback);
fs.write = function(fd, buffer, offset, length, position, callback) {
  if (util.isBuffer(buffer)) {
    // if no position is passed then assume null
    if (util.isFunction(position)) {
      callback = position;
      position = null;
    }
    callback = maybeCallback(callback);
    var wrapper = function(err, written) {
      // Retain a reference to buffer so that it can't be GC'ed too soon.
      callback(err, written || 0, buffer);
    };
    return binding.writeBuffer(fd, buffer, offset, length, position, wrapper);
  }
  if (util.isString(buffer))
    buffer += '';
  if (!util.isFunction(position)) {
    if (util.isFunction(offset)) {
      position = offset;
      offset = null;
    } else {
      position = length;
    }
    length = 'utf8';
  }
  callback = maybeCallback(position);
  position = function(err, written) {
    // retain reference to string in case it's external
    callback(err, written || 0, buffer);
  };
  return binding.writeString(fd, buffer, offset, length, position);
};

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 墨脱县| 东乡县| 淮南市| 盘锦市| 肃南| 兰考县| 枣庄市| 江山市| 禄丰县| 丰顺县| 怀远县| 沂南县| 伊川县| 西和县| 页游| 新绛县| 东港市| 福建省| 东宁县| 环江| 北流市| 广州市| 新郑市| 彝良县| 文登市| 绩溪县| 浏阳市| 馆陶县| 大英县| 印江| 嘉荫县| 尉氏县| 徐汇区| 中阳县| 丘北县| 鄄城县| 安阳市| 湄潭县| 武义县| 罗山县| 五莲县|