📜  Node.js fs.ftruncate() 方法

📅  最后修改于: 2022-05-13 01:56:31.814000             🧑  作者: Mango

Node.js fs.ftruncate() 方法

fs.ftruncate() 方法用于更改文件的大小,即增加或减小文件大小。它将路径中文件的长度更改 len 个字节。如果 len 短于文件的当前长度,则文件将被截断为该长度。如果它大于文件长度,则通过附加空字节 (x00) 对其进行填充,直到达到 len。它类似于 truncate() 方法,不同之处在于它接受要截断的文件的文件描述符。

句法:

fs.ftruncate(fd, len, callback)

参数:此方法接受三个参数,如上所述,如下所述:

  • fd:它是一个整数值,表示要截断的文件的文件描述符。
  • len:它是一个整数值,它指定文件将被截断的文件长度。它是一个可选参数。默认值为 0,这意味着将截断整个文件。
  • 回调:它是一个在方法执行时将被调用的函数。
    • err:如果方法失败会抛出一个错误。

下面的示例说明了 Node.js 中的fs.ftruncate() 方法

示例 1:

// Node.js program to demonstrate the
// fs.ftruncate() method
  
// Import the filesystem module
const fs = require('fs');
  
console.log("Contents of file before truncate:")
console.log(fs.readFileSync('example_file.txt', 'utf8'));
  
// Get the file descriptor of the file
const fd = fs.openSync('example_file.txt', 'r+');
  
fs.ftruncate(fd, 24, (err) => {
  if (err)
    console.log(err)
  else {
    console.log("Contents of file after truncate:")
    console.log(fs.readFileSync('example_file.txt', 'utf8'));
  }
});

输出:

Contents of file before truncate:
This is an example file for the ftruncate() method.
Contents of file after truncate:
This is an example file

示例 2:

// Node.js program to demonstrate the
// fs.ftruncate() method
  
// Import the filesystem module
const fs = require('fs');
  
console.log("Contents of file before truncate:")
console.log(fs.readFileSync('example_file.txt', 'utf8'));
  
// get the file descriptor of the file
const fd = fs.openSync('example_file.txt', 'r+');
  
// Truncate the whole file
fs.ftruncate(fd, (err) => {
  if (err)
    console.log(err)
  else {
    console.log("Contents of file after truncate:")
    console.log(fs.readFileSync('example_file.txt', 'utf8'));
  }
});

输出:

Contents of file before truncate:
This is an example file for the ftruncate() method.
Contents of file after truncate:

参考: https://nodejs.org/api/fs.html#fs_fs_ftruncate_fd_len_callback