使用 Nodejs 的 fs.writeFile Api 写文件是很常见的操作。
而写文件过程中换行也是很常见的,但是如何换行这个问题需要注意,因为不同的操作系统换行符是不一样的。
如何换行
操作系统的换行符不一样,其中 Windows 系统是 \r\n
其他系统是 \n
。
因此,如果需要写出来的文件适用于各个系统,那么写文件的时候就需要判断。
不过好在 Nodejs 提供了换行符常量 os.EOL
。
用法如下:
1 | const os = require('os') |
一个坑
之前不知道这个 API,于是手写了一段代码
1 | let str = 'abc\r'; |
这段代码看起来没啥问题,能正常写入文件,使用 vsCode 编辑器也能正常打开。
但是,使用 cat 命令、tail 命令都无法读取文件,使用 fs.readFileSync 也无法正常读取。
所以,为了避免不必要的麻烦,使用 Nodejs 写文件的时候,换行符还是建议使用 os.EOL
常量。