fsPromises.truncate()方法在Node.js的文件系统模块中定义。文件系统模块本质上用于与用户计算机的hard-disk进行交互。
truncate()方法用于按‘len’字节修改文件的内部内容。如果len短于文件的当前长度,则文件将被截断为len的长度;如果大于len,则通过添加空字节(x00)填充文件长度,直到达到len。
用法:
fs.promises.truncate(path, len)
参数:该方法接受上述和以下所述的两个参数:
- path:它是一个String,Buffer或Url,用于指定目标文件的路径。
- len:它是一个数字值,它指定文件的长度,之后将截断文件。这是一个可选参数,默认值为0,即,如果未提供len参数,则会截断整个文件。
返回值:此方法返回的promise将在成功时不带任何参数地被解析,或者在出现问题时被错误对象拒绝(给定路径是目录的路径或给定路径不存在)。
范例1:
// Node.js program to demonstrate the
// fsPromises.truncate() Method
// Importing File System module
const fs = require('fs');
// Truncate operation
fs.promises.truncate('./test.txt')
// If file is successfully truncated
.then(() => {
console.log('File contents are deleted!');
})
// If any error occurs
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
});
使用async-await实现相同的函数。
// Node.js program to demonstrate the
// fsPromises.truncate() Method
// Importing File System module
const fs = require('fs');
const truncate = async (path) => {
// Truncate operation
await fs.promises.truncate(path);
console.log('File contents are deleted!');
}
truncate('./test.txt')
// If any error occurs
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
});
运行程序之前的文件内容:
运行程序后的文件内容:
输出:
File contents are deleted!
范例2:部分截断
// Node.js program to demonstrate the
// fsPromises.truncate() Method
// Importing File System module
const fs = require('fs')
// Fetching contents before truncate
fs.promises.readFile('./test.txt')
.then(buff => {
const oldContents = buff.toString()
console.log(`\nContents before
truncate:\n${oldContents}`)
// Truncate operation
return fs.promises.truncate('./test.txt', 12)
})
// If file is successfully truncated
.then(() => {
console.log('\nTruncate done!\n')
// Fetching contents after truncate
return fs.promises.readFile('./test.txt')
})
.then(buff => {
const newContents = buff.toString()
console.log(`Contents after
truncate:\n${newContents}`)
})
// If any error occurs
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
});
使用async-await实现相同的函数
// Node.js program to demonstrate the
// fsPromises.truncate() Method
// Importing File System module
const fs = require('fs')
// Function to read file contents
const readFileContents = async (path) => {
const buff = await fs.promises.readFile(path)
return buff.toString()
}
// Function to truncate
const truncate = async (path, len) => {
// Fetching contents before truncate
const oldContents =
await readFileContents('./test.txt')
console.log(`\nContents before
truncate:\n${oldContents}`)
// Truncate operation
const buff = await fs.promises.truncate(path, len)
console.log('\nTruncate done!\n')
// Fetching contents before truncate
const newContents =
await readFileContents('./test.txt')
console.log(`Contents after
truncate:\n${newContents}`)
}
truncate('./test.txt', 12)
// If any error occurs
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
运行程序之前的文件内容:
运行程序后的文件内容:
输出:
参考: https://nodejs.org/dist/latest-v14.x/docs/api/fs.html#fs_fspromises_truncate_path_len
相关用法
- Node.js console.timeLog()用法及代码示例
- Node.js GM transparent()用法及代码示例
- Node.js GM drawEllipse()用法及代码示例
- Node.js GM thumbnail()用法及代码示例
- Node.js GM drawCircle()用法及代码示例
- Node.js GM sepia()用法及代码示例
- Node.js GM resize()用法及代码示例
- Node.js GM lower()用法及代码示例
- Node.js GM scale()用法及代码示例
- Node.js GM threshold()用法及代码示例
- Node.js GM drawArc()用法及代码示例
- Node.js GM whitePoint()用法及代码示例
- Node.js GM whiteThreshold()用法及代码示例
- Node.js GM drawLine()用法及代码示例
- Node.js GM drawPolyline()用法及代码示例
注:本文由纯净天空筛选整理自hunter__js大神的英文原创作品 Node.js | fsPromises.truncate() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。