1 의 [파일 시스템 API 의] detaiils 아주 많습니다. 가장 일반적인 방법은.
const fs = require('fs');
fs.writeFile("/tmp/test", "Hey there!", function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
현재 세 가지 방법으로 파일을 작성합니다.
기다릴 수 있도록 필요한 콜백하는 버퍼 기록되는 디스크입니다. # 39 의 it& 버퍼된 없습니다.
동시에 모든 데이터를 저장해야 합니다. 쓰기뿐만 순차인지 수행할 수 없습니다.
['라이티스트림'] 는 [4] # 39, 편리한 되므로, 이는 don& 콜백하는 기다릴 필요가 없다. 하지만, it& # 39, s not 버퍼된.
['라이티스트림'] [4], a 는 이름으로 스트리밍합니다 밝혔습니다. 정의에 의해 "버퍼입니다" 는 한 방향으로 이동하는 redboot*용 데이터 스트림 (소스 대상). 그러나 "버퍼된" 스트리밍합니다 쓸 필요는 없습니다. 스트림) 는 '버퍼된 "when you', 'n + 1 시간, 시 쓰기' n '청계천 report. 버퍼 커널 (같도다라고 it& # 39 의 전체 백업본과 요구사항뿐 플러시됩니다).
이 경우 가능한 '에서' 코드, '라이티스트림 쳐다보거라 상속됩니다 스트리밍합니다' 객체에는. 그들이 어떻게 컨텐트에서 플러시합니다 경우 관심을 확인할 수 있습니다. 그들은 모든 버퍼링 시스템이요 don& # 39 없다.
로 쓸 경우 조롱이라면 문자열으로 버퍼입니다 넷윈을 레이어에는 보낸 후 쓰고 디스크입니다. # 39, re 문장열 쓸 때, they& 가득 아니라 모든 것을 의미한다. 그래서 없는 경우.
<! - 모든 언어: > js 랭 -;
write("a")
write("b")
write("c")
fs.write(new Buffer("a"))
fs.write(new Buffer("b"))
fs.write(new Buffer("c"))
현재 node. js v0.12 () 은 안정화 버전 02/06/2015 에서) 는 이제 다음과 같은 두 가지 기능이 제공됩니다. ['코크 ()'] (http://nodejs.org/docs/v0.11.5/api/stream.html # stream_writable_cork) 와 ['토로하다 ()'] (http://nodejs.org/docs/v0.11.5/api/stream.html # stream_writable_uncork). 이러한 기능을 쓸 수 있는 것으로 보인다) 가 마침내 버퍼링하려면 / 플러시합니다 있다.
예를 들어, 제공하는 자바 가상 머신 (jvm) 에 몇 가지 클래스뿐만 버퍼된 스트림까지 ('부프레더스푸트스트림 부퍼드라이터', ''). 쓰기 3 바이트입니다 버퍼에 있는 경우 이러한 바이트입니다 저장됩니까 (메모리) 는 I / O 매입옵션 그냥 하는 대신 3 바이트입니다. 전체 내용이 저장할 때 버퍼가 플러시된 디스크입니다. 이 경우 성능이 향상됩니다.
[1]: http://nodejs.org/api/fs.html # fs_fs_write_fd_buffer_offset_length_position_callback [2]: http://nodejs.org/api/fs.html # fs_fs_writefile_filename_data_options_callback [3]: http://nodejs.org/api/fs.html # fs_fs_createwritestream_path_options [4]: https://github.com/joyent/node/blob/master/lib/fs.js # L1623
물론 좀 더 고급 가능하도록 할 수 있습니다. 비블로킹, 전체 파일을 한 번에 먹어서나 비트와 냥이라구 먹어서나 아닌.
var fs = require('fs');
var stream = fs.createWriteStream("my_file.txt");
stream.once('open', function(fd) {
stream.write("My first row\n");
stream.write("My second row\n");
stream.end();
});
var path = 'public/uploads/file.txt',
buffer = new Buffer("some content\n");
fs.open(path, 'w', function(err, fd) {
if (err) {
throw 'error opening file: ' + err;
}
fs.write(fd, buffer, 0, buffer.length, null, function(err) {
if (err) throw 'error writing file: ' + err;
fs.close(fd, function() {
console.log('file written');
})
});
});
>. 프스트라이트필레시누스 (파일, 데이터 [, 옵션뿐])
fs = require('fs');
fs.writeFileSync("synchronous.txt", "synchronous write!")
>. 프스트라이트필레 (파일, 데이터 [, 옵션뿐], 콜백하는)
fs = require('fs');
fs.writeFile('asynchronous.txt', 'asynchronous write!', (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
file <string> | <Buffer> | <URL> | <integer> filename or file descriptor
data <string> | <Buffer> | <Uint8Array>
options <Object> | <string>
callback <Function>
프리커 읽을 만한 가치가 있는 파일 시스템 (fs) docs.
내가 좋아했잖아 색인입니다 ./articles/file-system .
가져다줄래요 통했다.
참조 node. js 파일을 어떻게 써요? .
fs = require('fs');
fs.writeFile('helloworld.txt', 'Hello World!', function (err) {
if (err)
return console.log(err);
console.log('Wrote Hello World in file helloworld.txt, just check it');
});
콘텐트입니다 헤로월드.t스트:
Hello World!
업데이트: 현재 디렉터리에 쓰기 리눅스 노드입니다 같이 일부 다른 것 같다, 저는 이 의견을 추가 don& t # 39, 만일의 사태에 대비해: 이를 통해 ROOT_APP_PATH 펠릭스 그릴파스린스 (& # 39, .& # 39;), '= 콘솔드로그 (ROOT_APP_PATH), 'afaq 파일이 있는 적혀 있다.
이 질문에 대한 질문을 받자 그러니까말이야 " write"; 하지만, 더 일반적인 뜻으로써 " append"; 경우에 따라 사용할 수 있다는 점에서 유용할 수 있는 텍스트 파일로 추가 루프 (나열할지 파일이 방관하겠나). &Quot 사용하여 \n"; 추가할 경우 흐름선 예:
var fs = require('fs');
for (var i=0; i<10; i++){
fs.appendFileSync("junk.csv", "Line:"+i+"\n");
}
이에 대한 답을 날짜 및 제공되는 새로운 방법으로 이 있다.
const fsPromises = require('fs').promises
await fsPromises.writeFile('/path/to/file.txt', 'data to write')
[문서 참조 여기서요 자세한 정보] (https://nodejs.org/api/fs.html # fs_fspromises_writefile_file_data_options)
그래서 먼저 필요할 수 있는 세르베리에스 파일 다음과 같습니다.
var fs = require('fs');
그러나 나의 우선 '할 수 있는 방법을 쓸 방법은 몇 fs' 에 '를 사용하여 파일 (file)', 이렇게 하면 아펜드필레 덮어쓰기/추가 아웃하기로 doesn& # 39, t 가 있을 때, 그 파일 같은 코드를 생성하시겠습니까 될 수 있다 (아래 참조).
fs.appendFile('myFile.txt', 'Hi Ali!', function (err) {
if (err) throw err;
console.log('Thanks, It\'s saved to the file!');
});
var fs = require('fs');
fs.writeFile(path + "\\message.txt", "Hello", function(err){
if (err) throw err;
console.log("success");
});
예를 들면 다음과 같습니다. 파일 읽기 및 쓰기 다른 파일:
var fs = require('fs');
var path = process.cwd();
fs.readFile(path+"\\from.txt",function(err,data)
{
if(err)
console.log(err)
else
{
fs.writeFile(path+"\\to.text",function(erro){
if(erro)
console.log("error : "+erro);
else
console.log("success");
});
}
});
Fs 사용하여 파일을 쓸 수 있습니다 (파일 시스템) 모듈에서는.
예를 들어보겠습니다 어떻게 그렇게 할 수 있습니다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
const fs = require('fs');
const writeToFile = (fileName, callback) => {
fs.open(fileName, 'wx', (error, fileDescriptor) => {
if (!error && fileDescriptor) {
// Do something with the file here ...
fs.writeFile(fileDescriptor, newData, (error) => {
if (!error) {
fs.close(fileDescriptor, (error) => {
if (!error) {
callback(false);
} else {
callback('Error closing the file');
}
});
} else {
callback('Error writing to new file');
}
});
} else {
callback('Could not create new file, it may already exists');
}
});
};
끝 - < 스니핏 >;!
이 코드 구조에 의해 콜백하는 인사이드라면 콜백하는 스맥랜드의 없앨 수도 있습니다 약속 '/' 와 '비동기 우스딩 기다리는' 명령문입니다. 이 발쿰치로 비동기적입니다 코드 구조를 훨씬 더 균등형. 할 수 있다는 [우틸드프로미시피 (원본)] [2] 기능을 편리하게 사용할 수 있습니다. 정보기술 (it) 로 전환할 수 있게 콜백 그렇다. 예를 들면 '와' 기능을 살펴 fs (아래 참조).
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
// Dependencies.
const util = require('util');
const fs = require('fs');
// Promisify "error-back" functions.
const fsOpen = util.promisify(fs.open);
const fsWrite = util.promisify(fs.writeFile);
const fsClose = util.promisify(fs.close);
// Now we may create 'async' function with 'await's.
async function doSomethingWithFile(fileName) {
const fileDescriptor = await fsOpen(fileName, 'wx');
// Do something with the file here...
await fsWrite(fileDescriptor, newData);
await fsClose(fileDescriptor);
}
끝 - < 스니핏 >;!
[2]: https://nodejs.org/api/util.html # util_util_promisify_original
여기서 우리가 사용하는 파일 경로를 찾을 수 없는 아웃하기로 w+ 읽기 / 쓰기 위한 작업이 모두 it 약간만이라도 자동으로 생성된.
fs.open(path, 'w+', function(err, data) {
if (err) {
console.log("ERROR !! " + err);
} else {
fs.write(data, 'content', 0, 'content length', null, function(err) {
if (err)
console.log("ERROR !! " + err);
fs.close(data, function() {
console.log('written success');
})
});
}
});
컨텐츠, & # 39 는 사용자가 쓸 수 있는 파일 및 길이는 content.length& # 39;.;
다음은 샘플링합니다 csv 파일 읽기 및 쓰기 방법을 통해 현지 로컬 csv 파일.
var csvjson = require('csvjson'),
fs = require('fs'),
mongodb = require('mongodb'),
MongoClient = mongodb.MongoClient,
mongoDSN = 'mongodb://localhost:27017/test',
collection;
function uploadcsvModule(){
var data = fs.readFileSync( '/home/limitless/Downloads/orders_sample.csv', { encoding : 'utf8'});
var importOptions = {
delimiter : ',', // optional
quote : '"' // optional
},ExportOptions = {
delimiter : ",",
wrap : false
}
var myobj = csvjson.toSchemaObject(data, importOptions)
var exportArr = [], importArr = [];
myobj.forEach(d=>{
if(d.orderId==undefined || d.orderId=='') {
exportArr.push(d)
} else {
importArr.push(d)
}
})
var csv = csvjson.toCSV(exportArr, ExportOptions);
MongoClient.connect(mongoDSN, function(error, db) {
collection = db.collection("orders")
collection.insertMany(importArr, function(err,result){
fs.writeFile('/home/limitless/Downloads/orders_sample1.csv', csv, { encoding : 'utf8'});
db.close();
});
})
}
uploadcsvModule()
파일에 의해 다음과 같은 코드를 작성할 수 있습니다. (예:
"' var 데이터 = [{& # 39, test& # 39;: # 39, & # 39, & # 39 123& test2& # 39;:;; 로렘 이프젬 & # 39, & # 39. }]; 펠릭스 s.오픈 (데이터 경로 + & # 39, /data/topplayers.json& # 39, & # 39, wx& # 39, 함수 (오류, 필더스크리프터) { if (&! 오류 &; 필더스크리프터) { var 스트린달타 = 제슨.스트린그리피 (데이터). 프스트라이트필레 (필더스크리프터, 스트린달타, 함수 (오류) { if (! 오류) { 펠릭스 s.클로스 (필더스크리프터, 함수 (오류) { if (! 오류) { 콜백하는 (false). } else { 콜백하는 (& # 39, 오류 file& 닫으십시오 # 39;). } }). } else { 콜백하는 (& # 39, 오류 서면으로 file.& # 39;). } }). } }). "'
>. # ['펠릭스 s.크레이트라이티스트림 (경로 [, 옵션뿐])'] (https://nodejs.org/api/fs.html # fs_fs_createwritestream_path_options)
>. '옵션' 시작 'a' 로 데이터를 쓸 수 있도록 옵션을 포함할 수도 있습니다 최근 일부 포지셔닝하십시오 파일의 시작. 이 파일 수정을 요구할 수 있습니다 '기' 보다는 '보다는' r+ 교체하십니까 모드 (mode) 'w' 기본. 그 중 하나가 될 수 있는 인코딩입니다 수락됨 [버퍼] (https://nodejs.org/api/buffer.html # buffer_buffer).
>. 'True 로 설정된 경우' 에 '& # 39 오트로클로스 (기본 동작), # 39, & # 39 finish& error&' 또는 ',' # 39, 파일을 자동으로 설명자 폐쇄될 예정입니다. '만약' t be false 이면 파일 설명자가 won& # 39 는 오트로클로스 단힌 there& # 39 의 경우에도, 오류가 발생했습니다. # 39 의 책임을 전가하는 것은 application& 닫으십시오 및 smartupdate there& s no. # 39 파일 설명자 유출.
>. [레더스트림] 같은 (https://nodejs.org/api/fs.html # fs_class_fs_readstream) '는' fd 지정된 경우, [라이티스트림] (https://nodejs.org/api/fs.html # fs_class_fs_writestream) 가 지정한 파일을 사용할 무시하시겠습니까 '길' 인수와 설명자. # 39, & # 39, 즉, 'no' 행사는 open& 방출된다. fd '차단' 합니다. 비블로킹 'fd 의 전달해야 합니다 [네이소켓] (https://nodejs.org/api/net.html # net_class_net_socket).
>. '옵션' 이 경우, 해당 문자열으로 인코딩입니다 지정합니다.
이 후, 판독값 긴 글. 작동하잖아 어떻게 이해해야 합니다. 따라서, 예를 들어 's # 39 here& 크레이트라이티스트림 ()'.
/* The fs.createWriteStream() returns an (WritableStream {aka} internal.Writeable) and we want the encoding as 'utf'-8 */
/* The WriteableStream has the method write() */
fs.createWriteStream('out.txt', 'utf-8')
.write('hello world');
'' 편리한 파일 관리자 라이브러리를 사용할 수 있습니다.
먼저 고궁박물원) 에서 설치 고궁박물원 편리한 파일 관리자 '설치'
샘플링합니다 업로드입니다 및 파일 삭제
var filemanager = require('easy-file-manager')
var path = "/public"
var filename = "test.jpg"
var data; // buffered image
filemanager.upload(path,filename,data,function(err){
if (err) console.log(err);
});
filemanager.remove(path,"aa,filename,function(isSuccess){
if (err) console.log(err);
});