• len {integer} 默认值: 0
    • 返回: {Promise}

    截断文件,然后在成功时解决 Promise 且不带参数。

    如果文件大于 len 个字节,则只有前面 len 个字节会保留在文件中。

    例如,以下程序只保留文件的前 4 个字节:

    1. const fs = require('fs');
    2. const fsPromises = fs.promises;
    3. console.log(fs.readFileSync('temp.txt', 'utf8'));
    4. // 打印: Node.js
    5. async function doTruncate() {
    6. let filehandle = null;
    7. try {
    8. filehandle = await fsPromises.open('temp.txt', 'r+');
    9. await filehandle.truncate(4);
    10. } finally {
    11. if (filehandle) {
    12. // 如果文件已打开,则关闭文件。
    13. await filehandle.close();
    14. }
    15. }
    16. console.log(fs.readFileSync('temp.txt', 'utf8')); // 打印: Node
    17. }
    18. doTruncate().catch(console.error);

    如果文件小于 len 个字节,则会对其进行扩展,并且扩展部分将填充空字节('\0'):

    1. const fs = require('fs');
    2. const fsPromises = fs.promises;
    3. console.log(fs.readFileSync('temp.txt', 'utf8'));
    4. // 打印: Node.js
    5. async function doTruncate() {
    6. let filehandle = null;
    7. try {
    8. filehandle = await fsPromises.open('temp.txt', 'r+');
    9. await filehandle.truncate(10);
    10. } finally {
    11. if (filehandle) {
    12. // 如果文件已打开,则关闭文件。
    13. await filehandle.close();
    14. }
    15. }
    16. console.log(fs.readFileSync('temp.txt', 'utf8')); // 打印 Node.js\0\0\0
    17. }
    18. doTruncate().catch(console.error);

    最后 3 个字节是空字节('\0'),以补充超出的截断。