Points d'apprentissage :
Synchronisation et asynchrone
Ouvrir un fichier
Obtenir des informations sur le fichier
Écrire un fichier
Lire le fichier
Fermer le fichier
Intercepter le fichier
Supprimer le fichier
Créer le répertoire
Afficher le répertoire
Supprimer le répertoire
Système de fichiers Node.js
Synchronisation et asynchrone
Le code synchrone est exécuté de haut en bas, le code asynchrone n'est pas contrôlé par l'espace
Cas : file.js
[code]var fs = require('fs'); // 异步读取 fs.readFile('input.txt', function (err, data) { if (err) return console.log(err); console.log('异步读取:' + data.toString()); }) // 同步读取 var data = fs.readFileSync('input.txt'); console.log('同步读取:' + data.toString()); console.log('程序执行完毕。');
Ouvrir le fichier
[code]fs.open(path, flags[, mode], callback) 参数使用说明如下: path - 文件的路径。 flags - 文件打开的行为。 mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。 callback - 回调函数,带有两个参数如:callback(err, fd)。
Cas : open.js
[code]var fs = require('fs'); // 异步打开文件 console.log('准备打开文件'); // 读写方式打开inptu.txt fs.open('input.txt', 'r+', function (err, fd) { if (err) return console.log(err); console.log('文件打开成功'); }); console.log('程序执行完毕');
Obtenir des informations sur le fichier
[code]fs.start(path, callback) 参数使用说明如下: path - 文件路径。 callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象
Cas : info.js
[code]var fs = require('fs'); console.log('准备打开文件'); fs.stat('input.txt', function (err, stats) { if (err) return console.error(err); console.log(stats); console.log('读取文件信息成功'); // 检测文件类型 console.log('是否为文件(isFile) ? ' + stats.isFile()); console.log('是否为目录(isDirectory) ? ' + stats.isDirectory()); })
Écrire un fichier
[code]fs.writeFile(filename, data[, options], callback) 如果文件存在,写入的内容会覆盖旧文件内容 参数使用说明如下: path - 文件路径。 data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(流) 对象。 options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w' callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
Cas : write.js
[code]var fs = require('fs'); console.log('准备写入文件'); fs.writeFile('input.txt', '我是新写入的内容', function (err) { if (err) console.error(err); console.log('数据写入的数据'); console.log('-------------------'); }); console.log('读取写入的数据'); fs.readFile('input.txt', function (err, data) { if (err) console.error(err); console.log('异步读取文件数据:' + data.toString()); })
Lire le fichier
[code]fs.writeFile(filename, data[, options], callback) 如果文件存在,该方法写入的内容会覆盖旧的文件内容。 参数使用说明如下: path - 文件路径。 data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(流) 对象。 options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w' callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回
Cas : read.js
[code]var fs = require('fs'); var buf = new Buffer(1024); fs.open('input.txt', 'r+', function (err, fd) { if (err) return console.error(err); console.log('文件打开成功'); console.log('准备读取文件'); // fd fs.open的标识 // buf 缓存区 // 0, buf.length 缓存区区间 // 0, 读取input.txt开始位置 fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) { if (err) console.log(err); console.log(bytes + ' 字节被读取'); if (bytes > 0) { console.log(buf.slice(0, bytes).toString()); } }) })
Fermer le fichier
[code]fs.close(fd, callback) 参数使用说明如下: fd - 通过 fs.open() 方法返回的文件描述符。 callback - 回调函数,没有参数。
Cas : close.js
[code]var fs = require('fs'); var buf = new Buffer(1024); fs.open('input.txt', 'r+', function (err, fd) { if (err) return console.error(err); console.log('文件打开成功'); console.log('准备读取文件'); // fd fs.open的标识 // buf 缓存区 // 0, buf.length 缓存区区间 // 0, 读取input.txt开始位置 fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) { if (err) console.log(err); console.log(bytes + ' 字节被读取'); if (bytes > 0) { console.log(buf.slice(0, bytes).toString()); } }) // 关闭文件 fs.close(fd, function (err){ if (err) console.error(err); console.log('文件关闭成功'); }); })
Fichier d'interception
[code]fs.ftruncate(fd, len, callback) 该方法使用了文件描述符来读取文件 参数 fd - 通过 fs.open() 方法返回的文件描述符。 len - 文件内容截取的长度。 callback - 回调函数,没有参数
Cas : ftruncate.js
[code]var fs = require('fs'); var buf = new Buffer(1024); console.log('准备打开文件'); fs.open('input.txt', 'r+', function (err, fd) { if (err) return console.error(err); console.log('文件打开成功'); console.log('截取10字节后的文件内容'); // 截取文件 fs.ftruncate(fd, 10, function (err) { if (err) console.log(err); console.log('文件截取成功'); console.log('读取相同的文件'); fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) { if (err) console.error(err); // 仅仅输出读取的字节 if (bytes > 0) { console.log(buf.slice(0, bytes).toString()); } // 关闭文件 fs.close(fd, function (err) { if (err) console.error(err); console.log('文件关闭成功'); }) }) })
Supprimer le fichier
[code]fs.unlink(path, callback) 参数 path - 文件路径 callback - 回调函数,无参
Cas : unlink.js
[code]var fs = require('fs'); console.log('准备删除文件'); fs.unlink('input.txt', function (err) { if (err) return console.log(err); console.log('文件删除成功'); })
Créer un répertoire
[code]fs.mkdir(path[, mode], callback) 参数 path - 文件路径 mode - 设置目录权限,默认为0777 callback - 回调函数
Cas : mkdir.js
[code]var fs = require('fs'); console.log('创建目录 test'); fs.mkdir('test', function (err) { if (err) return console.error(err); console.log('目录创建成功'); });
Afficher le répertoire
[code]fs.readdir(path, callback) 参数使用说明如下: path - 文件路径。 callback - 回调函数,回调函数带有两个参数err, files,err 为错误信息,files 为 目录下的文件数组列表
Cas : readdir.js
[code]var fs = require('fs'); console.log('查看 /file 目录'); fs.readdir('../file/', function (err, files) { if (err) return console.log(err); files.forEach(function (file) { console.log(file); }) })
Supprimer le répertoire
[code]fs.rmdir(path, callback) 参数使用说明如下: path - 文件路径。 callback - 回调函数,没有参数。
Cas : rmdir.js
[code]var fs = require('fs'); console.log('删除 /test 目录'); fs.rmdir('test', function (err){ if (err) console.error(err); console.log('读取 /test 目录'); fs.readdir('test', function (err, files) { if (err) return console.log(err); files.forEach(function (file) { console.log(file); }) }) });
Ce qui précède est le contenu des étonnantes opérations sur les fichiers de Node.js. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !