> 웹 프론트엔드 > JS 튜토리얼 > NodeJS 연구 노트 FS 파일 module_node.js

NodeJS 연구 노트 FS 파일 module_node.js

WBOY
풀어 주다: 2016-05-16 16:20:32
원래의
1039명이 탐색했습니다.

1, 오프닝 분석

파일 시스템 모듈은 일련의 표준 POSIX 파일 I/O 작업 방법에 대한 간단한 래퍼입니다. 모듈은 require("fs")를 호출하여 얻을 수 있습니다. 파일 시스템 모듈의 모든 메소드에는 비동기 버전과 동기 버전이 있습니다.

(1), 파일 시스템 모듈의 비동기 메서드에는 마지막 수신 형식 매개변수로 완료 콜백 함수가 필요합니다.

(2) 콜백 함수의 구성은 호출되는 비동기 메서드에 따라 결정됩니다. 일반적으로 콜백 함수의 첫 번째 형식 매개변수는 반환되는 오류 정보입니다.

(3), 비동기 작업이 올바르게 실행되어 반환되면 오류 매개변수는 null이거나 정의되지 않습니다. 작업 메서드의 동기 버전을 사용하는 경우 오류가 발생하면 해당 오류는 일반적으로 발생하는 오류 형식으로 반환됩니다.

(4), try 및 catch 문을 사용하여 오류를 차단하고 프로그램이 계속되도록 할 수 있습니다.

먼저 파일("bb.txt")을 읽는 간단한 예를 살펴보겠습니다.

(1) 다음 내용("안녕하세요 여러분, 저는 노비타입니다! (*^__^*) 희희...")을 포함하여 "bb.txt" 파일을 생성합니다.

(2)에서 파일 읽기 동작은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

var fs = require("fs") ;
fs.readFile("bb.txt","utf8",함수(오류,데이터){
If(error) 오류 발생 ;
console.log(데이터) ;
}) ;

실행 결과:

여기서 주목해야 할 점은 파일을 읽을 때 인코딩을 설정해야 한다는 것입니다. 그렇지 않으면 기본적으로 "버퍼" 형식으로 나타납니다.

설정 없이 실행되는 효과를 보면 여전히 차이가 확연합니다. 다음과 같습니다:

다음과 같이 또 다른 쓰기 작업을 수행해 보겠습니다.

코드 복사 코드는 다음과 같습니다.

var fs = require("fs") ;
var txt = "누구나 NodeJS를 잘 배워야 합니다!!! ;
//파일 쓰기
fs.writeFile("bb.txt",txt,function (err) {
(err) throw err ;
console.log("파일이 저장되었습니다!"); //파일이 저장되었습니다
}) ;

실행 결과:

일반적으로 사용되는 예시 목록:

코드 복사 코드는 다음과 같습니다.

// 파일 삭제
fs.unlink('bb.txt', function(){
console.log('성공') ;
}) ;
// 파일명 수정
fs.rename('bb.txt','bigbear.txt',function(err){
console.log('이름 바꾸기 성공') ;
});
// 파일 상태 확인
fs.stat('bb.txt', function(err, stat){
console.log(stat);
});
// 파일이 존재하는지 확인
fs.exists('bb.txt', 함수( 존재함 ){
console.log( 존재함 ) ;
}) ;

2. Fs와 Stream의 연결

"스트림"은 비동기 특성을 갖습니다. 파일이나 콘텐츠를 읽기 위해 지정된 크기의 알 수 없는 "청크"로 나눌 수 있으며, "청크"를 읽을 때마다 이를 출력합니다. 파일을 읽을 때까지. 이는 "http1.1"에서 지원하는 "Transfer-Encoding: Chunked"와 같습니다. ("청크"는 어떤 형태로든 존재할 수 있지만 NodeJS는 기본적으로 "버퍼" 형태로 존재하므로 더 효율적입니다.) NodeJS의 "스트림"에는 Unix 시스템의 뛰어난 기능("파이프" ------ 파이프)이 있습니다.

아직도 "Http 모듈 기사", "Hello, Big Bear!"에서 첫 번째 NodeJS 프로그램을 기억하시나요? 이 작은 프로그램을 기반으로 다음과 같이 몇 가지 수정을 해보겠습니다.

(1), "bb.html" 생성

코드 복사 코드는 다음과 같습니다.