当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。