NodeJS 의 fs 모듈 (1)

6464 단어
fs 모듈 은 Node 의 내 장 된 모듈 입 니 다. 그 중에서 fs 는 File System 의 줄 임 말로 파일 시스템 을 말 합 니 다.동기 화 방법 은 모두 반환 값 이 있 고 비동기 적 인 방법 은 반환 값 이 없 으 며 매개 변 수 는 모두 반전 함수 가 있 습 니 다.
fs 모듈 의 방법 을 소개 하기 전에 두 가지 개념 을 먼저 이해 합 니 다.
파일 설명자 fd
  • 운영 체 제 는 열 린 파일 마다 파일 설명자 라 는 수치 표 지 를 할당 합 니 다. 파일 작업 은 이 파일 설명 자 를 사용 하여 모든 특정한 파일 을 식별 하고 추적 합 니 다.
  • NodeJS 에서 파일 을 조작 할 때마다 파일 설명 자 는 점점 증가 합 니 다. 파일 설명 자 는 보통 3 부터 시작 합 니 다. 앞 에 0, 1, 2 세 개의 특수 한 설명자 가 있 기 때문에 각각 process.stdin (표준 입력), process.stdout (표준 출력) 과 process.stderr (오류 출력)
  • 을 대표 합 니 다.
    식별 자 flag
    NodeJS 에서 flag 는 파일 에 대한 조작 방식 을 대표 합 니 다. 예 를 들 어 읽 을 수 있 고 쓸 수 있 습 니 다. 서로 다른 파일 작업 식별 자 는 서로 다른 의 미 를 가지 고 있 습 니 다.
  • r 파일 을 읽 고 파일 이 존재 하지 않 으 면 이상 을 던 집 니 다.read
  • r + 파일 을 읽 고 기록 합 니 다. 파일 이 존재 하지 않 으 면 이상 을 던 집 니 다.
  • rs 는 파일 을 읽 고 기록 하 며 운영 체제 가 로 컬 파일 시스템 캐 시 를 돌아 가도 록 지시 합 니 다.
  • w 파일 을 기록 합 니 다. 파일 이 존재 하지 않 으 면 생 성 되 고 존재 하면 비 운 후에 기록 합 니 다.write
  • wx 는 파일 을 기록 하고 배열 방식 으로 엽 니 다.
  • w + 파일 을 읽 고 기록 합 니 다. 파일 이 존재 하지 않 으 면 파일 을 만 들 고 존재 하면 비우 고 기록 합 니 다.
  • wx + w+ 와 유사 하 게 배타 적 으로 열 립 니 다.
  • a 추가 기록, 파일 이 존재 하지 않 으 면 파일 을 만 듭 니 다.append
  • x 는 a 과 비슷 하고 배타 적 으로 열 린 다.
  • a + 읽 기 및 추가 쓰기, 존재 하지 않 으 면 생 성 합 니 다.
  • x + 는 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 과 같 습 니 다. 마지막 매개 변 수 는 리 셋 함수 입 니 다. 함수 안에 두 개의 매개 변수 errdata (데이터) 가 있 습 니 다. 리 셋 함 수 는 파일 을 읽 은 후에 실 행 됩 니 다. 두 번 째 매개 변 수 는 전달 되 지 않 고 toString () 방법 으로 되 돌아 온 데 이 터 를 분석 할 수 있 습 니 다.
    fs.readFile('demo01.txt', 'utf8', (err, data) => {
      if (err) throw err;
      console.log(data);
    });
    

    2. 파일 기록
    Node 에서 파일 을 기록 하 는 방식 은 다음 과 같 습 니 다.
    동기 화 기록: fs. writeFileSync (file, data [, options])
  • 첫 번 째 매개 변 수 는 파일 을 기록 하 는 경로 나 파일 설명자 입 니 다.
  • 두 번 째 매개 변 수 는 기 록 된 데이터 이 고 유형 은 String 또는 Buffer 입 니 다.
  • 세 번 째 매개 변 수 는 options 이 고 기본 값 은 null 이 며 그 중에서 encoding (인 코딩, 기본 값 utf8, flag (표지 위치, 기본 값 wmode (권한 위치, 기본 값 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 에 비동기 로 쓰 면 네 개의 인자 가 있 습 니 다.
  • 비동기 기록 방법 writeFilewriteFileSync 의 세 번 째 매개 변수 와 같 고 마지막 매개 변 수 는 리 셋 함수 이 며 함수 내 에 하나의 매개 변수 err 만 있 습 니 다. 리 셋 함 수 는 파일 에 데 이 터 를 기록 한 후에 실 행 됩 니 다.
  • fs.writeFile('c:\\demo\a.txt', ‘hello,wolrd’, (error) => {
      console.log(error);
    });
    

    파일 추가
    동기 화 추가 appendFileSync
  • 첫 번 째 매개 변 수 는 파일 을 기록 하 는 경로 나 파일 설명자 입 니 다.
  • 두 번 째 매개 변 수 는 기 록 된 데이터 이 고 유형 은 String 또는 Buffer 입 니 다.
  • 세 번 째 매개 변 수 는 options 이 고 기본 값 은 null 이 며 그 중에서 encoding (인 코딩, 기본 값 utf8, flag (표지 위치, 기본 값 amode (권한 위치, 기본 값 0o666 가 있 고 직접 전송 encoding
  • 도 가능 합 니 다.
    const fs = require("fs");
    fs.appendFileSync("./a.txt", "  !");
    let result = fs.readFileSync("./a.txt", "utf8");
    console.log(result); // Hello FS   ~
    

    비동기 적 으로 appendFile 을 추가 로 기록 합 니 다. 네 개의 인자 가 있 습 니 다.
    비동기 추가 기록 방법 appendFileappendFileSync 의 세 번 째 매개 변수 와 같 습 니 다. 마지막 매개 변 수 는 리 셋 함수 입 니 다. 함수 안에 하나의 매개 변수 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 모듈 은 오늘 여기에 공유 하고 나중에 다시 공유 합 니 다.

    좋은 웹페이지 즐겨찾기