nodejs学习:8基础API(五)fs

异步方法最后一个是回调,回掉的第一个参数保留给错误

const fs = require('fs');

fs.readFile('./14_fs.js', 'utf8', (err, data) => {
  // fs.readFile(文件路径, 格式, (错误, 数据)
  if (err) {
    throw err
  }
  console.log(data)
})

同步读取:不建议使用

const data = fs.readFileSync('./13_events2.js', 'utf8')

console.log(data);

写文件:

可以写文件,也可以写buffer
fs.writeFile('./text', 'this is test', {
  encoding: 'utf8'
}, err => {
  if (err) throw err
  console.log('done!')
})

文件信息相关:state

fs.stat('./13_events2.js', (err, stats) => {
  if (err) {
    console.log('文件不存在');
    return
  }
  console.log(stats.isFile())
  // 是不是文件?
  console.log(stats.isDirectory())
  // 是不是文件夹?
  console.log(stats)
})

输出结果如下:

$ node 14_fs.js
true
false
Stats {
  dev: 2354241344,
  mode: 33206,
  nlink: 1,
  uid: 0,
  gid: 0,
  rdev: 0,
  blksize: undefined,
  ino: 5066549580819254,
  size: 632,
  blocks: undefined,
  atimeMs: 1527146062181.1772,
  mtimeMs: 1527146905805.104,
  ctimeMs: 1527146905805.104,
  birthtimeMs: 1527146062181.1772,
  atime: 2018-05-24T07:14:22.181Z,
  mtime: 2018-05-24T07:28:25.805Z,
  ctime: 2018-05-24T07:28:25.805Z,
  birthtime: 2018-05-24T07:14:22.181Z }

更改文件名:rename

fs.rename('./text', './test.txt', err => {
  if (err) throw err
  console.log('done!');
})

删除文件:unlink

fs.unlink('./test.txt', err => {
  if (err) throw err
  console.log('done!');
})

查看文件夹内容:

fs.readdir('./', (err, file) => {
  if (err) throw err
  console.log(file); 
})

创建文件夹:

fs.mkdir('test', err => {})

删除文件夹
如果不写回掉会报错如下

DeprecationWarning: Calling an asynchronous function without callback is deprecated.
fs.rmdir('./test')

监视文件夹的变化:

fs.watch('./',{
  recursive: true
},(eventtype, filename) => {
  console.log(eventtype, filename);
})

// watch(文件或者文件夹路径, opation(是否监听子文件),(变化的类型,  变化的名字))

readstream:流

const rs = fs.createReadStream('./14_fs.js');
// 创建一个流文件
rs.pipe(process.stdout)
// pipe是方向,往哪里导
// stdout控制台

写流文件

const ws = fs.createWriteStream('./test.txt')

const tid = setInterval(() => {
  const num = Math.floor(Math.random() * 10)

  if (num < 7) {
    console.log(num)
    ws.write(num + '')
  } else {
    clearInterval(tid)
    ws.end()
  }
}, 200)

ws.on('finish', () => {
  console.log('done!');
})

猜你喜欢

转载自blog.csdn.net/weixin_40814356/article/details/80437341