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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。