Node.js filehandle.truncate () Метод

Опубликовано: 30 Июля, 2021

Метод filehandle.truncate () определен в модуле файловой системы Node.js. Модуль файловой системы в основном предназначен для взаимодействия с жестким диском компьютера пользователя. Метод truncate () используется для изменения внутреннего содержимого файла на 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(" Truncate done, File"
                + " contents are deleted! ")
    } 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}`)
    })

Содержимое файла перед запуском программы:

Содержимое файла после запуска программы:

Выход:

 Усечение выполнено, содержимое файла удалено!

Пример 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(` Contents before truncate :
${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( ' Truncate done! ' )
} 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 :
${newContent}`)
}
truncateFile( './testFile.txt' , 52)
. catch (err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})

Выход: