JS: Почему fs.readFileSyn c () возвращает буфер, хотя я и раньше преобразовывал его в строку с помощью toString ()? - PullRequest
0 голосов
/ 27 апреля 2020

Надеюсь, у вас все хорошо.

Короче говоря: Моя цель - прочитать файл, который я извлек через диалоговое окно. filepath хранится в объекте с именем files . Путь извлекается с помощью ключа files.filePaths . Я хочу прочитать входные данные этого файла (который является простым текстовым файлом) и преобразовать его в строку.

const content = fs.readFileSync(files.filePaths.toString())      // here i converted it into a string
console.log(content)   // however, returns a Buffer Object

console.log(content.toString())       // This however returns the string.

Кто-нибудь знает, почему я должен использовать toString () дважды в этом случае?

Большое спасибо.

Best regads

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

При использовании fs.readFile вам нужно доказать конечное кодирование, так как при чтении файла возвращать буфер, который вы можете после задницы в строку или как угодно.

const content = fs.readFileSync(files.filePaths,'utf-8') 
// or like this
const content = fs.readFileSync(files.filePaths).toString('utf-8')

0 голосов
/ 27 апреля 2020

Файл путь , который вы передаете readFileSync, отличается от возвращаемого значения из readFileSync (которое является буфером, если (как в документации не указано ), которое вы предоставляете опция кодирования).

...