방법 설명:
파일에 쓰기(파일 설명자에 따름) 함수는 fs.writeFile()과 유사하지만 이 메서드는 실제 응용 프로그램에서는 더 낮은 수준의 작업을 제공하는 것이 좋습니다. .
이 방법에는 두 가지 형태가 있습니다.
1. fs.write(fd, 버퍼, 오프셋, 길이[, 위치], [콜백(err, bytesWritten, 버퍼)])
이 쓰기 방법은 버퍼를 파일에 씁니다(파일 설명자 fd를 기반으로 파일 찾기).
2.fs.write(fd, 데이터[, 위치[, 인코딩]], [콜백(err, write, string)])
이 쓰기 방법은 파일에 데이터를 씁니다(파일 설명자 fd를 기반으로 파일 찾기). 데이터가 버퍼 인스턴스가 아닌 경우 값은 문자열로 캐스팅됩니다.
문법:
fs.write(fd, 버퍼, 오프셋, 길이[, 위치], [콜백(err, bytesWritten, 버퍼)])
fs.write(fd, 데이터[, 위치[, 인코딩]], [콜백(err, write, string)])
이 메소드는 fs 모듈에 속하므로 사용하기 전에 fs 모듈을 도입해야 합니다(var fs= require(“fs”) )
수신 매개변수:
fd 파일 설명자.
buffer 데이터가 기록될 버퍼입니다. 버퍼 크기를 8의 배수로 설정하는 것이 가장 효율적입니다.
offset 버퍼에 기록된 오프셋
길이(정수) 읽은 파일의 길이를 바이트 단위로 지정합니다.
position (정수) 파일 읽기 시작 위치를 지정합니다. 이 항목이 null인 경우 현재 파일 포인터 위치부터 데이터를 읽습니다.
콜백 콜백은 err, bytesRead, buffer의 세 가지 매개변수를 전달합니다
· 오류 예외
· bytesRead: 읽은 바이트 수
·버퍼: 버퍼 객체
두 번째 형태:
인코딩 문자 인코딩
콜백
· 오류 예외
· writing 파일에 쓸 문자 수를 지정합니다.
· 문자열 반환 버퍼
예:
//fs.write(fd, 버퍼, 오프셋, 길이[, 위치], [콜백(err, bytesWritten, 버퍼)])
//실행 결과: bytesWritten = 8, buffer =
var fs = require('fs');
fs.open('content.txt', 'a', function(err,fd){
if(err){
던지기 오류;
}
var data = '123123123 hello world';
var buf = 새로운 버퍼(8);
fs.write(fd, buf, 0, 8, 0, function(err, bytesWritten, 버퍼){
if(err){
던지기 오류;
}
console.log(bytesWritten);
console.log(버퍼);
fs.close(fd,function(err){
if(err){
던지기 오류;
}
console.log('파일이 닫혔습니다');
})
})
})
//fs.write(fd, 데이터[, 위치[, 인코딩]], [콜백(err, write, string)])
//실행 결과: write = 21, string = <버퍼 31 32 33 31 32 33 31 32 33 20 68 65 6c 6c 6f 20 77 bf 72 6c 64>
var fs = require('fs');
fs.open('content.txt', 'a', function(err,fd){
if(err){
던지기 오류;
}
var data = '123123123 hello world';
fs.write(fd, 데이터, 0, 'utf-8', function(err, write, string){
if(err){
던지기 오류;
}
console.log(작성);
console.log(문자열);
fs.close(fd,function(err){
if(err){
던지기 오류;
}
console.log('파일이 닫혔습니다');
})
})
})
소스코드:
// 사용법:
// fs.write(fd, 버퍼, 오프셋, 길이[, 위치], 콜백);
//또는
// fs.write(fd, string[, position[, 인코딩]], 콜백);
fs.write = 함수(fd, 버퍼, 오프셋, 길이, 위치, 콜백) {
if (util.isBuffer(buffer)) {
// 전달된 위치가 없으면 null로 가정합니다
if (util.isFunction(위치)) {
콜백 = 위치;
위치 = null;
}
콜백 = 어쩌면Callback(콜백);
var 래퍼 = 함수(err, write) {
// 너무 빨리 GC되지 않도록 버퍼에 대한 참조를 유지합니다.
콜백(오류, 작성됨 || 0, 버퍼);
};
return 바인딩.writeBuffer(fd, 버퍼, 오프셋, 길이, 위치, 래퍼);
}
if (util.isString(buffer))
버퍼 = '';
if (!util.isFunction(위치)) {
if (util.isFunction(offset)) {
위치 = 오프셋;
오프셋 = null;
} 그 밖의 {
위치 = 길이;
}
길이 = 'utf8';
}
콜백 = 어쩌면 콜백(위치);
위치 = 함수(err, write) {
// 외부인 경우 문자열에 대한 참조를 유지합니다
콜백(오류, 작성됨 || 0, 버퍼);
};
return 바인딩.writeString(fd, 버퍼, 오프셋, 길이, 위치);
};