當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js fsPromises.truncate()用法及代碼示例


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




相關用法


注:本文由純淨天空篩選整理自hunter__js大神的英文原創作品 Node.js | fsPromises.truncate() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。