标签:读取文件 tostring test 写法 window exe 代码 存在 syn
console.log(process.env); //得到很多系统变量与用户变量
// 如在命令行输入 node ./index.js 2 3
console.log(process.argv); // [ 'C:\\Program Files\\nodejs\\node.exe','F:\\node-code\\index.js','2','3' ]
let num1 = parseInt(process.argv[2]);
let num2 = parseInt(process.argv[3]); // parseInt也ok
let sum = num1 + num2;
//输出(卡顿输出)(定时输出)
console.log('计算中.....');
//2秒后输出
setTimeout(()=>{
console.log('结果为:' + sum ); // 5
},2000);
console.log(__filename); // F:\node-code\index.js
console.log(__dirname); // F:\node-code
// 引入核心对象
const path = require('path'); // 核心对象 path在node.exe里面
// 3段路径来自不同用户的输入
const myPath = path.join(__dirname,'//one//','//two//','//three///');
console.log(myPath); // F:\node-code\one\two\three\
// 如 ./abv/efg.js 非要一个绝对路径
const str = './abv/efg.js';
let temp = path.resolve(str);
console.log(temp); // F:\node-code\abv\efg.js
const path = require('path');
// 接受一段字符串路径
let myPath = path.join(__dirname,'jack','rose','mick.txt');
// 解析这个路径为对象,更易于操作
let pathObj = path.parse(myPath);
console.log(pathObj); // { root: 'F:\\', dir: 'F:\\node-code\\jack\\rose', base: 'mick.txt',ext: '.txt',name: 'mick'}
// base可以作为修改文件名,或后缀的方式
pathObj.base = 'mick_die.good';
// 接收路径对象,转换成路径字符串
myPath = path.format(pathObj);
console.log(myPath); // F:\node-code\jack\rose\mick_die.good
// I or O?
// I input 计算机来说,就是输入
// O output 计算机来说 ,展现/写入数据就是输出,
//读取文件
// 引入核心对象
const fs = require('fs');
fs.readFile('./a.txt','utf8',(err,data)=>{
if (err) throw err; // 抛到控制台显示异常信息
// console.log(data);
// 需要获取字符串数据,就可以调用 buffer篮子.toString(编码)函数
// console.log(data.toString('utf8')); 默认urf8可以不传递
console.log(data); // 如在第二个参数传了 utf8 则可以直接打印而无需转译
});
// 引入核心对象
const fs = require('fs');
fs.writeFile('./a.txt','我今天赚了2块钱', {flag:'a'},(err)=>{ // {flag: 'a'} 则表示是追加模式 如无这个参数 文件每次编写时都会覆盖所有内容重新编写
// window中目录层级超级深的时候,写入会报错
if(err) throw err;
console.log('写文件完成了');
});
// 文件编写追加方式: appendFile('path',data,callback);
fs.appendFile('./a.txt','我今天赚了1块钱',(err)=>{
if(err) throw err;
console.log('文件追加成功');
});
// 接收命令行参数,根据该目录,读取目录下的所有文件并输出(遍历文件夹)
const path = require('path');
const fs = require('fs');
//引入别人包的入口的文件
// 1: 接收命令行参数 node ./01_read_dir_files.js .//xxx//xxx//xx
// 2: 修正该路径 path.resolve(process.agrv[2]);
let inputPath = path.resolve(process.argv[2]);
// 3: 判断该路径是否存在 fs.access(fs.constants.F_OK)
function testReadFiles(dir) {
try {
fs.accessSync(dir, fs.constants.F_OK); //判断该路径是否存在 同步写法
let state = fs.statSync(dir); // 获取文件的状态
if (state.isFile()) { //判断是否是文件
console.log(dir);
} else if (state.isDirectory()) { //判断是否是文件夹
let files = fs.readdirSync(dir); // 读文件
files.forEach( file => {
testReadFiles(path.join(dir,file));
});
}
} catch (e) {
console.log(e);
console.log('该文件或文件夹不存在!');
}
}
// 只判断一次
// fs.accessSync(dir, fs.constants.F_OK);
testReadFiles(inputPath);
标签:读取文件 tostring test 写法 window exe 代码 存在 syn
原文地址:https://www.cnblogs.com/chenjiashao/p/11737256.html