복붙노트

[NODEJS] Node.js를 파일을 작성

NODEJS

Node.js를 파일을 작성

해결법


  1. 1.파일 시스템 API의 세부 사항이 많이 있습니다. 가장 일반적인 방법은 다음과 같습니다

    파일 시스템 API의 세부 사항이 많이 있습니다. 가장 일반적인 방법은 다음과 같습니다

    const fs = require('fs');
    
    fs.writeFile("/tmp/test", "Hey there!", function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("The file was saved!");
    }); 
    
    // Or
    fs.writeFileSync('/tmp/test-sync', 'Hey there!');
    

  2. 2.현재 파일을 작성하는 세 가지 방법이 있습니다 :

    현재 파일을 작성하는 세 가지 방법이 있습니다 :

    이름 말한다 같이 WriteStream는, 스트림이다. 정의에 의해 스트림 데이터를 포함하는 "버퍼"어느 한 방향으로 이동 (소스 ► 목적지). 그러나 쓰기 가능한 스트림은 반드시 "버퍼링"되지 않습니다. 당신이 쓰는 n 번 때 스트림은 "버퍼링", 그리고 (이 가득하고 필요 플러시 할 수 있기 때문에) 시간 N + 1에서, 스트림이 커널에 버퍼를 전송합니다.

    즉 "버퍼"는 객체입니다. 그것은 "버퍼링"여부 해당 객체의 속성입니다.

    당신은 코드, 쓰기 가능한 스트림 개체에서 WriteStream 상속 보면. 당신이 관심을 지불하는 경우, 당신은 그들이 컨텐츠를 세척하는 방법을 볼 수 있습니다; 그들은 어떤 완충 시스템이 없습니다.

    당신이 문자열을 작성하는 경우, 그것은 버퍼로 변환 한 다음 기본 레이어로 전송되고 디스크에 기록합니다. 문자열을 쓸 때, 그들은 어떤 버퍼를 채우고 있지 않습니다. 그래서, 당신이 할 경우 :

    write("a")
    write("b")
    write("c")
    

    당신은 일을하는지 :

    fs.write(new Buffer("a"))
    fs.write(new Buffer("b"))
    fs.write(new Buffer("c"))
    

    즉, I / O 층에 세 전화를합니다. 당신은 "버퍼"를 사용하고 있지만, 데이터 버퍼링되지 않습니다. 버퍼링 된 스트림 할 것 : fs.write (새 버퍼 ( "ABC"))의 I / O 층에 하나의 호출을.

    현재로서는, Node.js를 v0.12 지금 두 가지 기능 지원 (안정 버전은 2015년 2월 6일 발표) 코르크 ()와 세차게 내뿜다(). 이러한 기능은 마지막으로 당신이 / 버퍼 쓰기 전화를 플러시 할 수 것으로 보인다.

    예를 들어, 자바에서 버퍼 스트림 (의 BufferedOutputStream, BufferedWriter의를 ...)를 제공하는 몇 가지 클래스가 있습니다. 세 바이트를 작성하는 경우,이 바이트는 버퍼 (메모리) 대신에 단지 3 바이트에 대한 I / O 호출을 수행에 저장됩니다. 버퍼가 가득 차면 내용은 플러시 디스크에 저장됩니다. 성능이 향상됩니다.

    난 그냥 디스크 액세스가 수행되어야하는지 기억, 아무것도 발견 아니에요.


  3. 3.당신은 물론 조금 더 진보 할 수 있습니다. 한 번에 전체 파일을 작성하지, 비트와 조각을 작성, 비는 차단 :

    당신은 물론 조금 더 진보 할 수 있습니다. 한 번에 전체 파일을 작성하지, 비트와 조각을 작성, 비는 차단 :

    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();
    });
    

  4. 4.동기 쓰기

    동기 쓰기

    fs = require('fs');
    
    fs.writeFileSync("foo.txt", "bar");
    

    비동기 쓰기

    fs = require('fs');
    
    fs.writeFile('foo.txt', 'bar', (err) => { if (err) throw err; });
    

    어디

    file <string> | <Buffer> | <URL> | <integer> filename or file descriptor
    data <string> | <Buffer> | <Uint8Array>
    options <Object> | <string>
    callback <Function>
    

    가치는 공식 파일 시스템 (FS) 문서를 읽고.

    업데이트 : 비동기 / await를

    fs = require('fs');
    util = require('util');
    writeFile = util.promisify(fs.writeFile);
    
    fn = async () => { await writeFile('foo.txt', 'bar'); }
    
    fn()
    

  5. 5.

    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');
            })
        });
    });
    

  6. 6.나는 ./articles/file-system의 색인을 좋아했다.

    나는 ./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');
    });
    

    helloworld.txt의 내용 :

    Hello World!
    

    최신 정보: 현재 디렉토리에있는 리눅스 노드 쓰기에서, 그래서 단지의 경우이 댓글을 추가하지 않는 일부 다른 사람 같다 : 이 ROOT_APP_PATH 사용 fs.realpathSync = ( '.'); CONSOLE.LOG (ROOT_APP_PATH); 파일이 작성되는 경우 얻을 수 있습니다.


  7. 7.제공하는 답변은 구식이며,이 작업을 수행하는 새로운 방법입니다 :

    제공하는 답변은 구식이며,이 작업을 수행하는 새로운 방법입니다 :

    const fsPromises = require('fs').promises
    await fsPromises.writeFile('/path/to/file.txt', 'data to write')
    

    추가 정보를 원하시면 여기 문서를 참조하십시오


  8. 8.나는 질문에 "쓰기"에 대한하지만 좀 더 일반적인 의미 "APPEND"이 (파일이 존재하는지 여부) 파일에 텍스트를 추가하는 루프에서 사용하기 쉬운 일부 경우에 유용 할 수 있습니다 물었다 알고있다. 사용에 "\ n"은 줄을 추가하려는 경우 예 :

    나는 질문에 "쓰기"에 대한하지만 좀 더 일반적인 의미 "APPEND"이 (파일이 존재하는지 여부) 파일에 텍스트를 추가하는 루프에서 사용하기 쉬운 일부 경우에 유용 할 수 있습니다 물었다 알고있다. 사용에 "\ n"은 줄을 추가하려는 경우 예 :

    var fs = require('fs');
    for (var i=0; i<10; i++){
        fs.appendFileSync("junk.csv", "Line:"+i+"\n");
    }
    

  9. 9.OK,이 노드가 내장되어 같은 기능이를 위해 매우 간단합니다, 그것은 파일 시스템 기본적으로, NodeJS 파일 시스템 모듈을 의미 FS를 불렀다 ...

    OK,이 노드가 내장되어 같은 기능이를 위해 매우 간단합니다, 그것은 파일 시스템 기본적으로, NodeJS 파일 시스템 모듈을 의미 FS를 불렀다 ...

    그래서 먼저이처럼 server.js 파일에 필요합니다

    var fs = require('fs');
    

    FS 파일에 쓰기를 할 수있는 몇 가지 방법이 있지만, 내 선호하는 방법은이 파일에 물건을 추가하고 존재하지 않는 파일이 하나 생성됩니다 경우, 코드가 아래처럼 될 수 appendFile을 사용하고 있습니다 :

    fs.appendFile('myFile.txt', 'Hi Ali!', function (err) {
      if (err) throw err;
      console.log('Thanks, It\'s saved to the file!');
    });
    

  10. 10.당신은 FS (파일 시스템) 모듈을 사용하여 파일에 쓸 수 있습니다.

    당신은 FS (파일 시스템) 모듈을 사용하여 파일에 쓸 수 있습니다.

    여기 당신이 그것을 할 수있는 방법의 예입니다 :

    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');
        }
      });
    };
    

    또한 useing 약속 및 비동기 / await를 진술하여이 콜백 내부 - 콜백 코드 구조를 제거 할 수 있습니다. 이것은 비동기 코드 구조가 훨씬 더 평평하게 만들 것입니다. 편리한 util.promisify이 있음을 수행하는 (원본) 기능을 이용할 수 있습니다. 그것은 우리가 약속을 콜백에서 전환 할 수 있습니다. 아래 FS 기능과 예를 살펴 보자 :

    // 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);
    }
    

  11. 11.

     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");
                                });
                            }
                    });
    

  12. 12.여기에서 우리는 읽기 / + w를 사용하는 두 조치를 작성하고 파일 경로가 발견되지 않는 경우 자동으로 생성 될 것이다.

    여기에서 우리는 읽기 / + w를 사용하는 두 조치를 작성하고 파일 경로가 발견되지 않는 경우 자동으로 생성 될 것이다.

    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');
                })
            });
        }
    });
    

    당신이 파일의 길이, 'content.length'에 쓸 무슨 내용을 의미합니다.


  13. 13.여기에 지역의 로컬 및 쓰기 CSV 파일에서 파일 CSV를 읽는 방법의 샘플입니다.

    여기에 지역의 로컬 및 쓰기 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()
    

  14. 14.이 긴 기사를 읽고, 후. 당신은 어떻게 작동하는지 이해해야합니다. 그래서, 여기에 createWriteStream의 예이다 ().

    이 긴 기사를 읽고, 후. 당신은 어떻게 작동하는지 이해해야합니다. 그래서, 여기에 createWriteStream의 예이다 ().

    /* 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');
    

  15. 15.당신은 스트림을 파일에 쓸 수 있습니다.

    당신은 스트림을 파일에 쓸 수 있습니다.

    그냥 이런 식으로 작업을 수행합니다

    const fs = require('fs');
    
    const stream = fs.createWriteStream('./test.txt');
    stream.write("Example text");
    

  16. 16.당신은 라이브러리 쉬운 파일 관리자를 사용할 수 있습니다

    당신은 라이브러리 쉬운 파일 관리자를 사용할 수 있습니다

    고궁 박물원에서 처음 설치 NPM 쉬운 파일 관리자를 설치

    업로드 및 삭제 파일에 대한 샘플

    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);
    });
    

  17. 17.포인트 1 :

    포인트 1 :

    당신은 파일에 뭔가를 작성합니다. 수단 : 이미 파일에 저장 한 것을 제거하고 새로운 내용을 기록합니다. 사용 fs.promises.writeFile ()

    포인트 2 :

    당신은 파일에 무언가를 추가합니다. 수단 : 그것은 이미 파일에 저장 아무것도를 제거하지만, 파일에 새 항목을 추가 content.then 먼저 파일을 읽은 다음 읽을 수있는 값으로 내용을 추가, 파일에 기록되지 않습니다. 그래서 사용 fs.promises.readFile 및 fs.promises.writeFile ()

    예 1 : 내 JSON 파일에서 JSON 객체를 작성합니다.

    const fs = require('fs');
    

    의 WriteFile (파일명 writeData는) 비동기 함수의 WriteFile (파일명 writeData는) { {시도 AWAIT fs.promises.writeFile (파일명 JSON.stringify (writeData는, NULL, 4) 'UTF8'); true를 반환 } 캐치 (ERR) { 반환 거짓 } }


  18. 18.포인트 1 :

    포인트 1 :

    당신은 파일에 뭔가를 작성합니다. 수단 : 이미 파일에 저장 한 것을 제거하고 새로운 내용을 기록합니다. 사용 fs.promises.writeFile ()

    포인트 2 :

    당신은 파일에 무언가를 추가합니다. 수단 : 그것은 이미 파일에 저장 아무것도를 제거하지만, 파일에 새 항목을 추가 content.then 먼저 파일을 읽은 다음 읽을 수있는 값으로 내용을 추가, 파일에 기록되지 않습니다. 그래서 사용 fs.promises.readFile 및 fs.promises.writeFile ()

    예 1 : 내 JSON 파일에서 JSON 객체를 작성합니다.

    const fs = require('fs');
    writeFile  ('./my_data.json' , {id:1, name:'my name'} )
    async function writeFile  (filename ,writedata) {
        try {
            await fs.promises.writeFile(filename, JSON.stringify(writedata,null, 4), 'utf8');
           console.log ('data is written successfully in the file')
        }
        catch(err) {
            console.log ('not able to write data in the file ')
        }
    }
    

    예 2 : 당신은 JSON 파일에 데이터를 추가하려는 경우. 당신은 데이터를 추가 할 {: 1, 이름 : ID를 '내 이름'} 같은 폴더 루트에 파일 my_data.json에 있습니다. 다만 append_data (FILE_PATH 데이터) 함수를 호출한다.

    파일이 존재하는 경우는 JSON 파일에 데이터를 추가합니다. 또는이 파일을 생성하고,이 파일에 데이터를 추가합니다.

       const fs = require('fs');
       data = {id:1, name:'my name'}
       file_path = './my_data.json'
       append_data (file_path , data )
    
       async function append_data (filename , data ) {
    
          if (fs.existsSync(filename)) {
             read_data = await readFile(filename)
             if (read_data == false) {
                 console.log('not able to read file')
             }
             else {
                 read_data.push(data)
                 dataWrittenStatus = await writeFile(filename, read_data)
                 if dataWrittenStatus == true {
                   console.log('data added successfully')
                 }
                else{
                   console.log('data adding failed')
                }
            }
           else{
              dataWrittenStatus = await writeFile(filename, [data])
              if dataWrittenStatus == true {
                 console.log('data added successfully')
              }
              else{
                 console.log('data adding failed')
              }
          }
       }
    
    
    
    async function readFile  (filePath) {
      try {
        const data = await fs.promises.readFile(filePath, 'utf8')
        return JSON.parse(data)
      }
     catch(err) {
         return false;
      }
    }
    
    async function writeFile  (filename ,writedata) {
      try {
          await fs.promises.writeFile(filename, JSON.stringify(writedata,null, 4), 'utf8');
          return true
      }
      catch(err) {
          return false
      }
    }
    

  19. 19.다음 코드 예제에 의해 파일에 쓸 수 있습니다 :

    다음 코드 예제에 의해 파일에 쓸 수 있습니다 :

    var data = [{ 'test': '123', 'test2': 'Lorem Ipsem ' }];
    fs.open(datapath + '/data/topplayers.json', 'wx', function (error, fileDescriptor) {
      if (!error && fileDescriptor) {
        var stringData = JSON.stringify(data);
        fs.writeFile(fileDescriptor, stringData, function (error) {
          if (!error) {
            fs.close(fileDescriptor, function (error) {
              if (!error) {
                callback(false);
              } else {
                callback('Error in close file');
              }
            });
          } else {
            callback('Error in writing file.');
          }
        });
      }
    });
    
  20. from https://stackoverflow.com/questions/2496710/writing-files-in-node-js by cc-by-sa and MIT license