nodejs文件操作方法
需要注意的是nodejs作为服务端而不是客户端的应用,require方法会失效,需要引入module
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
不管是写入还是删除,需要注意的是Sync同步操作,这意味着 JavaScript 代码将停止执行,直到该方法运行完成。
写入文件
const fs = require('fs'); const content = 'Some content!'; fs.writeFile('/Users/joe/test.txt', content, err => { if (err) { console.error(err); } // file written successfully });to
同步写入fs.writeFileSync()
const fs = require('fs'); const content = 'Some content!'; try { fs.writeFileSync('/Users/joe/test.txt', content); // file written successfully } catch (err) { console.error(err); }ye
也可以使用fs/promises
模块提供的fsPromises.writeFile()
方法
const fs = require('fs/promises'); async function example() { try { const content = 'Some content!'; await fs.writeFile('/Users/joe/test.txt', content); } catch (err) { console.log(err); } } example();
默认情况下这种写入会覆盖原有内容,你可以使用flag
参数了修改这一选项
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => {});
flag参数
Flag | 描述 |
---|---|
r | 以读取模式打开文件。如果文件不存在抛出异常。 |
r+ | 以读写模式打开文件。如果文件不存在抛出异常。 |
rs | 以同步的方式读取文件。 |
rs+ | 以同步的方式读取和写入文件。 |
w | 以写入模式打开文件,如果文件不存在则创建。 |
wx | 类似 'w',但是如果文件路径存在,则文件写入失败。 |
w+ | 以读写模式打开文件,如果文件不存在则创建。 |
wx+ | 类似 'w+', 但是如果文件路径存在,则文件读写失败。 |
a | 以追加模式打开文件,如果文件不存在则创建。 |
ax | 类似 'a', 但是如果文件路径存在,则文件追加失败。 |
a+ | 以读取追加模式打开文件,如果文件不存在则创建。 |
ax+ | 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。 |
追加写入
使用fs.appendFile()
和fs.appendFileSync()
方法
const fs = require('fs'); const content = 'Some content!'; fs.appendFile('file.log', content, err => { if (err) { console.error(err); } // done! });
使用fsPromises.appendFile()
方法
const fs = require('fs/promises'); async function example() { try { const content = 'Some content!'; await fs.appendFile('/Users/joe/test.txt', content); } catch (err) { console.log(err); } } example();
文件的删除
使用unlink()
const fs = require("fs"); const path = "./picture.jpg"; fs.unlink(path, function (err) { if (err) { console.error(err); } else { console.log("File removed:", path); } });
使用 unlinkSync()
同步删除
const fs = require("fs"); const path = "./picture.jpg"; try { fs.unlinkSync(path); console.log("File removed:", path); } catch (err) { console.error(err); }