>  기사  >  웹 프론트엔드  >  노드 파일 시스템: fs 비동기 및 동기(파일 읽기 및 쓰기)

노드 파일 시스템: fs 비동기 및 동기(파일 읽기 및 쓰기)

藏色散人
藏色散人앞으로
2022-08-08 15:11:033775검색

동기화 및 비동기

fs with Sync는 동기 모드를 의미하고, 동기화가 없으면 비동기를 의미합니다.

먼저 동기화와 비동기를 구별해 보겠습니다.

동기화: 이전 코드가 먼저 실행되고 나중 코드는 이전 코드를 기다려야 합니다. 완료될 때까지 실행되지 않습니다.

비동기: 코드가 특별한 순서 없이 실행됩니다. 즉, 이전 코드를 실행해도 후속 코드가 차단되지 않으므로 코드의 순서는 다음과 같습니다. 비동기 코드의 실행 결과는 확실하지 않습니다

fs에는 특정 파일 작업이 있습니다. 비동기와 동기의 두 가지 방법이 있습니다. 비동기는 일반 비동기와 Promise 비동기로 구분됩니다. 옵션

r: 读取文件,文件不存在则报错
r+:读取并写入文件,如果文件不存在则报错
rs:以同步的方式读取文件并通知操作系忽略本地文件系统缓存。(一般不用)
w:写入文件。如果文件不存在则创建该文件,如果文件存在则覆盖
wx:作用和w类似,如果路径已存在则失败。
w+:读取并写入文件。如果文件不存在则创建该文件,如果文件存在则覆盖
wx+:和w+类型,如果路径已存在则失败。
a:追加写入文件,如果文件不存在则创建文件
ax:作用和a类型,如果路径已存在则失败。
a+: 读取并追加写入文件,如果文件不存在则创建文件
ax+:作用和a+类似,如果路径已存在则失败。

사용하기 전에 모듈 가져오기

let fs=require('fs');

1. 파일 읽기

1.readFileSync(path[, options]) 동기적으로 파일 읽기

경로: 파일 경로

옵션: 선택 사항 파일 읽기 옵션을 구성하는 데 사용되는 매개변수는 동일합니다

//  同步读取 需要使用一个变量来接收读取出来的数据
let data=fs.readFileSync(path,{  // path为文件的路径
		encoding:'utf8',  // 指定字符集
		flag:'r'		  // 指定读取的模式  具体上面有
});	
console.log(data.toString());   // 默认读出来的是buffer类型 使用toString()转为字符串
2. readFile (path,[,options],callback(error,data)) 파일의 일반적인 비동기 읽기

// 普通异步读取不需要变量 直接在回调函数中读取数据  需要注意的是:
// 回调函数接收两个参数 第一个是error 也就是异常 说明文件读取失败 如果error为null 则读取成功 data即数据
fs.readFile(path,{encoding:'utf8',flag:'r'},function(error,data){
    console.log(data.toString())
});

3. (path[, options]) Promise 기반 파일 읽기

	// fs.promises.xxx 返回的是一个promise的对象 需要学习promise的语法 then()接收一个参数data 即数据
fs.promises.readFile(path).then(data=>{
   	console.log(data.toString());
})
// 或
let fsPromise=fs.promises.readFile(path);
fsPromise.then(data=>{
	console.log(data.toString());
})

2. Write File

appendFile은 writeFile

path의 flag:'a+'와 동일한 효과를 갖습니다. 파일 경로 데이터는 다음과 같이 작성된 데이터 옵션입니다. 위

1.fs.writeFileSync(file, data[, options])는 파일을 동기적으로 씁니다

// data为需要写入的数据 options同上 写入的方式 a+为追加写入方式
fs.writeFileSync(path,data,{flag:'a+'}); // 返回值为undefined

2.fs.appendFileSync(file, data[, options]) 파일을 쓰는 동기식 추가 모드

fs.appendFileSync(path,data,{});  // 返回值为undefined

3. .writeFile(file, data[, options],callback) 일반적인 비동기 쓰기

fs.writeFile(path,data,{flag:'a+'},function(error){
	if(err){
		console.log("写入失败");
	}else{
		console.log("写入成功");
	}})

4. fs.promises.writeFile(file, data[, options]) promise는 비동기 쓰기

fs.promises.writeFile(path,data,{flag:'a+'});  // 写入操作 没有返回值 也就不需要then了

5. [, 옵션], 콜백) 쓰기는 파일

fs.appendFile(path,appendData,function(){		})

6에 비동기적으로 추가됩니다. fs .promises.appendFile(path, data[, options]) 파일 쓰기에 추가하는 약속 방법

fs.promises.writeFile(path,data);

[권장:

node.js 비디오 튜토리얼

]

위 내용은 노드 파일 시스템: fs 비동기 및 동기(파일 읽기 및 쓰기)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제