如何使用 TypeScript 写入文件

使用 TypeScript 写入文件

How to write to a File using TypeScript

使用该fs.writeFileSync()方法写入 TypeScript 中的文件,例如
writeFileSync(join(__dirname, filename), data). 该方法将文件路径、数据和选项对象作为参数,并将提供的内容写入文件。

索引.ts
import { readFileSync, writeFileSync, promises as fsPromises } from 'fs'; import { join } from 'path'; // ✅ write to file SYNCHRONOUSLY function syncWriteFile(filename: string, data: any) { /** * flags: * - w = Open file for reading and writing. File is created if not exists * - a+ = Open file for reading and appending. The file is created if not exists */ writeFileSync(join(__dirname, filename), data, { flag: 'w', }); const contents = readFileSync(join(__dirname, filename), 'utf-8'); console.log(contents); // 👉️ "One Two Three Four" return contents; } syncWriteFile('./example.txt', 'One\nTwo\nThree\nFour'); // -------------------------------------------------------------- // ✅ write to file ASYNCHRONOUSLY async function asyncWriteFile(filename: string, data: any) { /** * flags: * - w = Open file for reading and writing. File is created if not exists * - a+ = Open file for reading and appending. The file is created if not exists */ try { await fsPromises.writeFile(join(__dirname, filename), data, { flag: 'w', }); const contents = await fsPromises.readFile( join(__dirname, filename), 'utf-8', ); console.log(contents); // 👉️ "One Two Three Four" return contents; } catch (err) { console.log(err); return 'Something went wrong'; } } asyncWriteFile('./example.txt', 'One\nTwo\nThree\nFour');

代码片段中的第一个函数同步写入文件。

如果您还没有为节点安装类型,请确保运行以下命令:

npm install --save-dev @types/node

如果您收到错误消息,指出fs未找到模块的类型声明,请将node字符串添加到文件中的types数组中tsconfig.json

tsconfig.json文件
{ "compilerOptions": { "types": [ "node" ] }, }

fs.writeFileSync

方法将文件路径作为第一个参数,将数据作为第二个参数,将
对象options作为第三个参数。

options 对象中flagw属性默认设置为 – “打开文件进行写入,如果不存在则创建它”。

如果要将数据附加到文件,请改用a+标志,它会打开一个文件进行读取和附加,如果文件不存在,也会创建该文件。

您可以在 Node.js 文档的这一部分查看其他可用的标志值

__dirname变量返回当前模块的目录名称。

例如,如果您__dirname在位于 的模块中使用该变量
/home/user/my-module.js,则该__dirname变量将返回/home/user

我们使用path.join方法将当前模块的目录路径与提供的文件名连接起来。

上面的代码片段写入一个名为的文件,该文件example.txt位于与当前模块相同的目录中。

例如,如果您要写入的文件位于上一级目录,您可以将../example.txt其作为参数传递给该函数。

或者,您可以使用该fsPromises对象异步写入文件。

使用该fsPromises.writeFile()方法在 TypeScript 中异步写入文件,例如await fsPromises.writeFile(join(__dirname, filename), data). 该方法以路径和数据为参数,将数据异步写入文件。

索引.ts
// ✅ write to file ASYNCHRONOUSLY async function asyncWriteFile(filename: string, data: any) { /** * flags: * - w = Open file for reading and writing. File is created if not exists * - a+ = Open file for reading and appending. The file is created if not exists */ try { await fsPromises.writeFile(join(__dirname, filename), data, { flag: 'w', }); const contents = await fsPromises.readFile( join(__dirname, filename), 'utf-8', ); console.log(contents); // 👉️ "One Two Three Four" return contents; } catch (err) { console.log(err); return 'Something went wrong'; } } asyncWriteFile('./example.txt', 'One\nTwo\nThree\nFour');

fsPromises.writeFile
方法将
数据
异步写入文件以替换文件内容(如果文件已存在)。

如果要附加到文件,请在选项对象中设置属性a+值。 flag

该方法返回一个承诺,该承诺undefined在成功时实现。

发表评论