NodeJS 의 fs 모듈 (1)
fs 모듈 의 방법 을 소개 하기 전에 두 가지 개념 을 먼저 이해 합 니 다.
파일 설명자 fd
3
부터 시작 합 니 다. 앞 에 0
, 1
, 2
세 개의 특수 한 설명자 가 있 기 때문에 각각 process.stdin
(표준 입력), process.stdout
(표준 출력) 과 process.stderr
(오류 출력) 식별 자 flag
NodeJS 에서 flag 는 파일 에 대한 조작 방식 을 대표 합 니 다. 예 를 들 어 읽 을 수 있 고 쓸 수 있 습 니 다. 서로 다른 파일 작업 식별 자 는 서로 다른 의 미 를 가지 고 있 습 니 다.
w+
와 유사 하 게 배타 적 으로 열 립 니 다.a
과 비슷 하고 배타 적 으로 열 린 다.a+
과 비슷 하고 배타 적 으로 열 린 다.fs 모듈 의 네 가지 기본 적 인 방법: 읽 기, 쓰기, 복사, 삭제.
1. 파일 읽 기
Node 에서 파일 을 읽 는 방법 은 다음 과 같 습 니 다.
동기 읽 기: fs. readFileSync (파일, [옵션])
파일 읽 기 readFileSync 방법 은 두 개의 매개 변수 가 있 습 니 다. 첫 번 째 매개 변 수 는 파일 을 읽 는 경로 나 파일 설명자 입 니 다.두 번 째 매개 변 수 는 options 입 니 다. 기본 값 은 null 입 니 다. 그 중에서 encoding (인 코딩, 기본 값 은 null) 과 flag (표지 위치, 기본 값 은 r) 가 있 고 encoding 에 직접 들 어 갈 수 있 습 니 다.반환 값 은 파일 의 내용 이 며, 없 으 면
encoding
되 돌아 오 는 파일 의 내용 은 Buffer 이 며, 들 어 오 는 인 코딩 에 따라 해석 된다 면.아래 인자 가 'utf 8' 일 때 utf 8 문자 인 코딩 으로 파일 을 읽 습 니 다.try {
const data = fs.readFileSync('demo01.txt', 'utf8');
console.log(data);
} catch(e) {
throw e;
}
비동기 읽 기: fs. readFile (파일, [옵션], 콜백 (error, data)
비동기 읽 기, 이 방법 은 반환 값 이 없습니다. 앞의 두 매개 변 수 는
readFileSync
과 같 습 니 다. 마지막 매개 변 수 는 리 셋 함수 입 니 다. 함수 안에 두 개의 매개 변수 err
와 data
(데이터) 가 있 습 니 다. 리 셋 함 수 는 파일 을 읽 은 후에 실 행 됩 니 다. 두 번 째 매개 변 수 는 전달 되 지 않 고 toString () 방법 으로 되 돌아 온 데 이 터 를 분석 할 수 있 습 니 다.fs.readFile('demo01.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
2. 파일 기록
Node 에서 파일 을 기록 하 는 방식 은 다음 과 같 습 니 다.
동기 화 기록: fs. writeFileSync (file, data [, options])
options
이 고 기본 값 은 null
이 며 그 중에서 encoding
(인 코딩, 기본 값 utf8
, flag
(표지 위치, 기본 값 w
과 mode
(권한 위치, 기본 값 0o666
가 있 으 며 직접 전송 할 수 있 습 니 다 encoding
.const fs = require("fs");
fs.writeFileSync("./txt.txt", "Hello FS ");
let result = fs.readFileSync("./txt.txt", "utf8");
console.log(result); // Hello FS
비동기 쓰기: fs. writeFile (file, data [, options], callback (error)
writeFile 에 비동기 로 쓰 면 네 개의 인자 가 있 습 니 다.
writeFile
은 writeFileSync
의 세 번 째 매개 변수 와 같 고 마지막 매개 변 수 는 리 셋 함수 이 며 함수 내 에 하나의 매개 변수 err
만 있 습 니 다. 리 셋 함 수 는 파일 에 데 이 터 를 기록 한 후에 실 행 됩 니 다.fs.writeFile('c:\\demo\a.txt', ‘hello,wolrd’, (error) => {
console.log(error);
});
파일 추가
동기 화 추가 appendFileSync
options
이 고 기본 값 은 null
이 며 그 중에서 encoding
(인 코딩, 기본 값 utf8
, flag
(표지 위치, 기본 값 a
과 mode
(권한 위치, 기본 값 0o666
가 있 고 직접 전송 encoding
const fs = require("fs");
fs.appendFileSync("./a.txt", " !");
let result = fs.readFileSync("./a.txt", "utf8");
console.log(result); // Hello FS ~
비동기 적 으로 appendFile 을 추가 로 기록 합 니 다. 네 개의 인자 가 있 습 니 다.
비동기 추가 기록 방법
appendFile
은 appendFileSync
의 세 번 째 매개 변수 와 같 습 니 다. 마지막 매개 변 수 는 리 셋 함수 입 니 다. 함수 안에 하나의 매개 변수 err
(오류) 가 있 습 니 다. 리 셋 함 수 는 파일 에 데 이 터 를 추가 로 기록 한 후에 실 행 됩 니 다.const fs = require("fs");
fs.appendFile("./a.txt", "2333", err => {
if(!err) {
fs.readFile("./a.txt", "utf8", (err, data) => {
console.log(data); // Hello FS 2333
});
}
});
3. 파일 복사
동기 화 복사: fs. copyFileSync (src, dest [, 플래그])
src
| 복사 할 원본 파일 이름 입 니 다.dest
| 복사 작업 의 대상 파일 이름 입 니 다.flags
복사 작업 에 사용 되 는 수정자.기본 값: 0
.src 를 dest 에 동기 화 합 니 다.기본적으로 dest 가 존재 한다 면 덮어 씁 니 다.undefined 로 돌아 갑 니 다.const fs = require('fs');
// 。
fs.copyFileSync(' .txt', ' .txt');
console.log(' ');
비동기 복사: fs. copyFile (src, dest [, 플래그], 콜백)
위 와 유사 하 게 비동기 복사 가 동기 복사 보다 하나의 인자 (리 셋 함수) 만 더 많 을 뿐이다.
4. 파일 삭제
파일 동기 화 삭제: fs. unlinksync (path)
반환 값 이 없습니다.
unlinkSync
의 인 자 는 파일 을 삭제 할 경로 입 니 다. 예 를 들 어 삭제 node
디 렉 터 리 에 있 는 index.js
파일 입 니 다. const fs = require("fs");
fs.unlinkSync("node/index.js");
비동기 삭제 파일: fs. unlink (path, callback)
unlink
방법의 첫 번 째 매개 변 수 는 unlinkSync
와 같 고 마지막 매개 변 수 는 반전 함수 이 며 함수 에 하나의 매개 변수 err
(오류) 가 존재 하 며 파일 을 삭제 한 후에 실 행 됩 니 다.const fs = require("fs");
fs.unlink("a/index.js", err => {
if (!err) console.log(" ");
});
fs.unlink()
디 렉 터 리 에 사용 할 수 없습니다.디 렉 터 리 를 삭제 하려 면 사용 하 십시오 fs.rmdir()
.Node 에 관 한 fs 모듈 은 오늘 여기에 공유 하고 나중에 다시 공유 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.