Node.jsファイルの操作方法まとめ_node.js
Node.js には、他の言語と同様にファイル操作もあります。 node.js でのファイル操作については説明しません。他の言語でのファイル操作には、通常、ファイルのオープン、クローズ、読み取り、書き込み、ファイル情報、ディレクトリの作成と削除、ファイルの削除、ファイル パスの検出などが含まれます。 node.js にも同様の機能があり、他の言語とは API が異なるのかもしれません。
1. 同期および非同期のオープンとクローズ
/** * Created by Administrator on 2016/3/21. */ var fs=require("fs"); //同步读 fs.openSync = function(path, flags, mode) //模块fs.js文件中如上面定义的openSync 函数3个参数 //.1.path 文件路径 //2.flags 打开文件的模式 //3.model 设置文件访问模式 //fd文件描述 var fd=fs.openSync("data/openClose.txt",'w'); //fs.closeSync = function(fd) fs.closeSync(fd); //异步读写 //fs.open = function(path, flags, mode, callback_) //fs.close = function(fd, callback) fs.open("data/openColse1.txt",'w',function(err,fd) { if (!err) { fs.close(fd,function(){ console.log("closed"); }); } });
フラグは他の言語にもあり、主に r、w、a の 3 つの部分に分かれています。これらは C のフラグと似ています。
1.r - ファイルを読み取り専用モードで開きます。データ ストリームの初期位置はファイルの先頭です
2.r+ - ファイルを読み取り/書き込みモードで開きます。データ ストリームの初期位置はファイルの先頭です
3.w - ファイルが存在する場合、ファイルの長さは 0 にクリアされます。つまり、ファイルの内容は失われます。存在しない場合は、作成してみてください。データ ストリームの初期位置はファイルの先頭です
4.w+ - ファイルが存在しない場合は、ファイルを作成してみてください。ファイルが存在する場合は、ファイルの長さを 0 に設定します。つまり、ファイルの内容は失われます。データ ストリームの初期位置はファイルの先頭です
5.a - ファイルを書き込み専用モードで開きます。ファイルが存在しない場合は、データ ストリームの最初の位置がファイルの最後に追加されます。ファイルの終わり。
6.a+ - 読み取りおよび書き込みのためにファイルを開きます。ファイルが存在しない場合は、データ ストリームの最初の位置がファイルの最後に追加されます。ファイル。
2. 読み書き
1. 単純なファイルの読み取りと書き込み
/** * Created by Administrator on 2016/3/21. */ var fs = require('fs'); var config = { maxFiles: 20, maxConnections: 15, rootPath: "/webroot" }; var configTxt = JSON.stringify(config); var options = {encoding:'utf8', flag:'w'}; //options 定义字符串编码 打开文件使用的模式 标志的encoding、mode、flag属性 可选 //异步 //fs.writeFile = function(path, data, options, callback_) //同步 //fs.writeFileSync = function(path, data, options) fs.writeFile('data/config.txt', configTxt, options, function(err){ if (err){ console.log("Config Write Failed."); } else { console.log("Config Saved."); readFile(); } }); function readFile() { var fs = require('fs'); var options = {encoding:'utf8', flag:'r'}; //异步 //fs.readFile = function(path, options, callback_) //同步 //fs.readFileSync = function(path, options) fs.readFile('data/config.txt', options, function(err, data){ if (err){ console.log("Failed to open Config File."); } else { console.log("Config Loaded."); var config = JSON.parse(data); console.log("Max Files: " + config.maxFiles); console.log("Max Connections: " + config.maxConnections); console.log("Root Path: " + config.rootPath); } }); }
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe SimpleReadWrite.js Config Saved. Config Loaded. Max Files: 20 Max Connections: 15 Root Path: /webroot Process finished with exit code 0
2. 同期読み取りと書き込み
/** * Created by Administrator on 2016/3/21. */ var fs = require('fs'); var veggieTray = ['carrots', 'celery', 'olives']; fd = fs.openSync('data/veggie.txt', 'w'); while (veggieTray.length){ veggie = veggieTray.pop() + " "; //系统api //fd 文件描述 第二个参数是被写入的String或Buffer // offset是第二个参数开始读的索引 null是表示当前索引 //length 写入的字节数 null一直写到数据缓冲区末尾 //position 指定在文件中开始写入的位置 null 文件当前位置 // fs.writeSync(fd, buffer, offset, length[, position]); // fs.writeSync(fd, string[, position[, encoding]]); //fs.writeSync = function(fd, buffer, offset, length, position) var bytes = fs.writeSync(fd, veggie, null, null); console.log("Wrote %s %dbytes", veggie, bytes); } fs.closeSync(fd); var fs = require('fs'); fd = fs.openSync('data/veggie.txt', 'r'); var veggies = ""; do { var buf = new Buffer(5); buf.fill(); //fs.readSync = function(fd, buffer, offset, length, position) var bytes = fs.readSync(fd, buf, null, 5); console.log("read %dbytes", bytes); veggies += buf.toString(); } while (bytes > 0); fs.closeSync(fd); console.log("Veggies: " + veggies);
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe syncReadWrite.js Wrote olives 7bytes Wrote celery 7bytes Wrote carrots 8bytes read 5bytes read 5bytes read 5bytes read 5bytes read 2bytes read 0bytes Veggies: olives celery carrots Process finished with exit code 0
3. 非同期読み取りと書き込みと同期読み取りと書き込みには、ほとんどより多くのパラメーターのコールバックがあります
/** * Created by Administrator on 2016/3/21. */ var fs = require('fs'); var fruitBowl = ['apple', 'orange', 'banana', 'grapes']; function writeFruit(fd){ if (fruitBowl.length){ var fruit = fruitBowl.pop() + " "; // fs.write(fd, buffer, offset, length[, position], callback); // fs.write(fd, string[, position[, encoding]], callback); // fs.write = function(fd, buffer, offset, length, position, callback) fs.write(fd, fruit, null, null, function(err, bytes){ if (err){ console.log("File Write Failed."); } else { console.log("Wrote: %s %dbytes", fruit, bytes); writeFruit(fd); } }); } else { fs.close(fd); ayncRead(); } } fs.open('data/fruit.txt', 'w', function(err, fd){ writeFruit(fd); }); function ayncRead() { var fs = require('fs'); function readFruit(fd, fruits){ var buf = new Buffer(5); buf.fill(); //fs.read = function(fd, buffer, offset, length, position, callback) fs.read(fd, buf, 0, 5, null, function(err, bytes, data){ if ( bytes > 0) { console.log("read %dbytes", bytes); fruits += data; readFruit(fd, fruits); } else { fs.close(fd); console.log ("Fruits: %s", fruits); } }); } fs.open('data/fruit.txt', 'r', function(err, fd){ readFruit(fd, ""); }); }
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe asyncReadWrite.js Wrote: grapes 7bytes Wrote: banana 7bytes Wrote: orange 7bytes Wrote: apple 6bytes read 5bytes read 5bytes read 5bytes read 5bytes read 5bytes read 2bytes Fruits: grapes banana orange apple Process finished with exit code 0
4. ストリーミング読み取りと書き込み
/** * Created by Administrator on 2016/3/21. */ var fs = require('fs'); var grains = ['wheat', 'rice', 'oats']; var options = { encoding: 'utf8', flag: 'w' }; //从下面的系统api可以看到 createWriteStream 就是创建了一个writable流 //fs.createWriteStream = function(path, options) { // return new WriteStream(path, options); //}; // //util.inherits(WriteStream, Writable); //fs.WriteStream = WriteStream; //function WriteStream(path, options) var fileWriteStream = fs.createWriteStream("data/grains.txt", options); fileWriteStream.on("close", function(){ console.log("File Closed."); //流式读 streamRead(); }); while (grains.length){ var data = grains.pop() + " "; fileWriteStream.write(data); console.log("Wrote: %s", data); } fileWriteStream.end(); //流式读 function streamRead() { var fs = require('fs'); var options = { encoding: 'utf8', flag: 'r' }; //fs.createReadStream = function(path, options) { // return new ReadStream(path, options); //}; // //util.inherits(ReadStream, Readable); //fs.ReadStream = ReadStream; // //function ReadStream(path, options) //createReadStream 就是创建了一个readable流 var fileReadStream = fs.createReadStream("data/grains.txt", options); fileReadStream.on('data', function(chunk) { console.log('Grains: %s', chunk); console.log('Read %d bytes of data.', chunk.length); }); fileReadStream.on("close", function(){ console.log("File Closed."); }); }
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe StreamReadWrite.js Wrote: oats Wrote: rice Wrote: wheat File Closed. Grains: oats rice wheat Read 16 bytes of data. File Closed. Process finished with exit code 0
個人的には、これらの API は一度使って感覚をつかめば大丈夫だと思います。必要なのは、出会ったときに使えるようになれば十分です。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











gho ファイルは、NortonGhost ソフトウェアによって作成され、オペレーティング システムとデータのバックアップと復元に使用されるイメージ ファイルです。場合によっては、gho ファイルを削除できる場合もありますが、削除には注意が必要です。この記事では、ghoファイルの役割やghoファイルを削除する際の注意点、ghoファイルの削除方法を紹介します。まず、gho ファイルの役割を理解しましょう。 gho ファイルは、ハードディスク全体または特定のパーティションのイメージを保存できる圧縮システムおよびデータ バックアップ ファイルです。この種のバックアップ ファイルは通常、緊急時の回復に使用されます。

Go ではファイルを安全に読み書きすることが重要です。ガイドラインには以下が含まれます。 ファイル権限の確認 遅延を使用してファイルを閉じる ファイル パスの検証 コンテキスト タイムアウトの使用 これらのガイドラインに従うことで、データのセキュリティとアプリケーションの堅牢性が確保されます。

Go 言語では、ファイルの内容をクリアする 2 つの方法が提供されています。io.Seek と io.Truncate を使用する方法と、ioutil.WriteFile を使用する方法です。方法 1 では、カーソルをファイルの末尾に移動してからファイルを切り詰めます。方法 2 では、空のバイト配列をファイルに書き込みます。実際のケースでは、これら 2 つの方法を使用して Markdown ファイルのコンテンツをクリアする方法を示します。

解決方法: Java ファイル操作エラー: ファイルの書き込みに失敗しました Java プログラミングではファイル操作が必要になることが多く、ファイル書き込みは重要な機能の 1 つです。ただし、ファイル書き込みエラーが発生し、プログラムが正常に実行できなくなる場合があります。この記事では、この種の問題の解決に役立ついくつかの一般的な原因と解決策について説明します。間違ったパス: よくある問題は、間違ったファイル パスです。指定したパスにファイルを書き込もうとすると、パスが存在しないか、アクセス許可が不十分な場合、ファイルは書き込まれます。

Go 言語のファイル操作関数を学習し、ファイルの暗号化、圧縮、アップロード、ダウンロード機能を実装します。Go 言語は、オープンソースの静的型付けプログラミング言語であり、その効率的なパフォーマンスと簡潔な構文により、開発分野で広く普及しています。 Go 言語の標準ライブラリには豊富なファイル操作関数が用意されており、ファイルの読み書き、暗号化や圧縮、アップロードやダウンロードなどが非常に簡単に行えます。この記事では、Go言語のファイル操作関数を使って、ファイルの暗号化、圧縮、アップロード、ダウンロードの機能を実装する方法を紹介します。まず、関連する 3 つのファイルをインポートする必要があります

PHP は、Web 開発で広く使用されている人気のあるプログラミング言語です。 Web アプリケーションでは、ファイル操作は基本的な一般的な機能です。この記事では、PHP を使用して CSV ファイルを読み込み、HTML テーブルに表示する方法を説明します。 CSV は、表形式のデータを Excel などの表計算ソフトウェアにインポートするために使用される一般的なファイル形式です。 CSV ファイルは通常、多くの行で構成され、各行はカンマ区切りの値で構成されます。通常、最初の行には列ヘッダーが含まれており、各列値の意味を説明します。ここではPHPを使用します

C++ では、ofstream クラスを使用して、ファイル内の指定された場所にコンテンツを挿入します。ファイルを開いて挿入ポイントを見つけます。使用

広く使用されているサーバー側プログラミング言語として、PHP は多くの便利なファイル処理関数を提供するだけでなく、より高度なファイル操作クラスもいくつか提供します。より便利なクラスの 1 つは SplFileInfo です。これを使用すると、ファイルの読み取りおよび書き込み操作をより柔軟かつ効率的に実行できます。この記事では、PHPのSplFileInfoクラスを使ってファイル操作を行う方法を紹介します。 1. SplFileInfo クラスの概要 SplFileInfo クラスは、PHP の組み込みクラスです (必要ありません)。
