Node.js filehandle.truncate()方法
原文:https://www . geesforgeks . org/node-js-file handle-truncate-method/
filehandle.truncate() 方法是在 Node.js 的 File System 模块中定义的,File System 模块基本上就是和用户电脑的硬盘进行交互。truncate()方法用于通过“len”字节修改文件的内部内容。如果 len 小于文件的当前长度,文件将被截断为 len 的长度,如果 len 大于文件长度,则通过附加空字节(x00)来填充文件,直到达到 len。
语法:
filehandle.truncate( len );
参数:该方法接受如上所述的单个参数,描述如下:
- len: 是一个数字值,指定文件的长度,在该长度之后文件将被截断。这是一个可选参数,默认值为 0,即如果不提供 len 参数,将截断整个文件。
返回值:它返回一个承诺,该承诺将在成功时被无参数地解析,或者在出错时被错误对象拒绝(前给定路径是指向目录的路径,或者给定路径不存在)。
示例 1: 这个示例说明了当文件将被截断后的长度没有给出时,如何截断作品。
// Importing File System and
// Utilities module
const fs = require('fs')
const truncateFile = async (path) => {
let filehandle = null
try {
filehandle = await fs.promises
.open(path, mode = 'r+')
// Append operation
await filehandle.truncate()
console.log('\nTruncate done, File"
+ " contents are deleted!\n')
} finally {
if (filehandle) {
// Close the file if it is opened.
await filehandle.close();
}
}
}
truncateFile('./testFile.txt')
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
运行程序前的文件内容:
运行程序后文件内容:
输出:
Truncate done, File contents are deleted!
例 2: 这个例子说明了如何截断作品,当长度后的文件将被截断时,给出了。
// Importing File System and Utilities module
const fs = require('fs')
// fs.readFileSync(() method reads the file
// and returns buffer form of the data
const oldBuff = fs.readFileSync('./testFile.txt')
// File content after append
const oldContent = oldBuff.toString()
console.log(`\nContents before truncate :
\n${oldContent}`)
const truncateFile = async (path, len) => {
let filehandle = null
try {
filehandle = await fs.promises
.open(path, mode = 'r+')
// Append operation
await filehandle.truncate(len)
console.log('\nTruncate done!\n')
} finally {
if (filehandle) {
// Close the file if it is opened.
await filehandle.close();
}
}
const newBuff = fs.readFileSync(path)
//File content after truncate
const newContent = newBuff.toString()
console.log(`Contents after truncate :
\n${newContent}`)
}
truncateFile('./testFile.txt', 52)
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
输出:
版权属于:月萌API www.moonapi.com,转载请注明出处