ホームページ  >  記事  >  ウェブフロントエンド  >  Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

青灯夜游
青灯夜游転載
2022-11-18 20:36:171746ブラウズ

この記事では、ファイルの読み書きとパスの処理を例に、Node の fs ファイル モジュールとパス モジュールについて説明します。

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

1. fs ファイル システム モジュール

fs モジュール は Node. js ファイル操作用に公式に提供されたモジュール。ファイル操作のユーザー要件を満たす一連のメソッドとプロパティを提供します。 [関連チュートリアルの推奨事項: nodejs ビデオ チュートリアル ]

1. 指定されたファイルを読み取ります

##fs.readFile (): 指定されたファイルの内容を読み取ります。

パラメータ 1: ファイルのパスを示す必須パラメータ、文字列です。

パラメータ 2: エンコーディング形式を示すオプションのパラメータです。ファイルの読み取り
パラメータ 3: 必須パラメータ ファイルの読み取りが完了すると、コールバック関数を通じて読み取り結果が取得されます

fs.readFile(path, [options], callback)

例 1: デモを読み取ります。 txt ファイル

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)##demo.txt ファイル

##
'前端杂货铺'

#app.js ファイル

// 导入 fs 文件系统模块
const fs = require('fs')

// 读取文件 utf-8 为中文编码格式
fs.readFile('../files/demo.txt', 'utf-8', function (err, data) {
    console.log('err:', err)
    console.log('data:', data)
})

注: 間違ったパスを記述した場合、つまりファイルの読み取りに失敗した場合、出力される内容は次のようになります [err はエラー オブジェクト、データは未定義]

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

例 2:demo.txt ファイルの読み取りが成功したかどうかを確認しますNodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

app.js ファイル

#意図的に間違ったパス、読み取りに失敗しました#失敗の結果は次のとおりです#

// 导入 fs 模块
const fs = require('fs')

// 读取文件
fs.readFile('../files/demo1.txt', 'utf-8', function (err, data) {
    if(err) {
        return console.log('读取文件失败', err.message)
    }
    console.log('data:', data)
})

2. 指定したファイルを書き込みます

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

#fs.writeFile(): 指定したファイルにコンテンツを書き込みます

パラメータ 1: 必須パラメータ。ファイルの保存パスを示すファイル パスの文字列を指定する必要があります。 パラメータ 2: 書き込む内容を示す必須パラメータです。

パラメータ3: はい ファイルの内容が書き込まれる形式を示すパラメータを選択します。デフォルトは utf-8です。

パラメータ 4: 必須パラメータ、ファイル書き込み完了後のコールバック関数

fs.writeFile(file, data, [options], callback)

例 1:demo.txt ファイルの作成


##demo.txt ファイル

// 该文件内容为空

app.js ファイル

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

// 导入 fs 文件系统模块
const fs = require('fs')

// 写入文件内容
fs.writeFile('../files/demo.txt', '这里是前端杂货铺', function(err, data) {
    if (err) {
        return console.log('写入文件失败', err.message)
    }
    console.log('文件写入成功')
})

注: 存在しないディスクに書き込む場合、ファイルの書き込みは失敗し、印刷内容は以下の通りです

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

3. 結果の整理事例

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)#例: 結果の形式変換

変換前の成績形式

変換後の成績形式

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)ファイル形式は次のとおりです

#score.txt ファイルNodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)
スコアのコンテンツを書き込みます

杂货铺=100 张三=98 李四=95 王五=92
Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)app.js ファイル

必要な fs ファイル モジュールをインポートします
  • fs.readFile()メソッドを使用して、素材ディレクトリ内のscore.txtファイルを読み取ります
ファイルの読み取りが失敗したかどうかを判断します

ファイルの読み取りが成功したら、スコアを処理しますdata

完成したスコア データが処理されます。fs.writeFile() メソッドを呼び出して、新しいファイル newScore.txt
  • // 导入 fs 文件系统模块
    const fs = require('fs')
    
    // 写入文件内容
    fs.readFile('../files/score.txt', 'utf-8', function (err, data) {
        // 判断是否读取成功
        if (err) {
            return console.log('读取文件失败' + err.message)
        }
        // 把成绩按空格进行分割
        const arrOld = data.split(' ')
        // 新数组的存放
        const arrNew = []
        // 循环分割后的数组 对每一项数据 进行字符串的替换操作
        arrOld.forEach(item => {
            arrNew.push(item.replace('=', ':'))
        })
        // 把新数组中的每一项合并 得到新的字符串
        const newStr = arrNew.join('\r\n')
    
        // 写入新数据
        fs.writeFile('../files/newScore.txt', newStr, function (err) {
            if (err) {
                return console.log('写入成绩失败' + err.message)
            }
            console.log('成绩写入成功')
        })
    })
  • ## に書き込みます
  • #4. 処理パス

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)__dirname: 現在のファイルが配置されているディレクトリを示します

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)例: 相対パスの記述

const fs = require('fs')

fs.readFile('../files/score.txt', 'utf-8', function(err, data) {
    if (err) {
        return console.log('文件读取失败' + err.message)
    }
    console.log('文件读取成功')
})

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

示例:使用 __dirname

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

const fs = require('fs')

// 读取文件
fs.readFile(__dirname + '/files/score.txt', 'utf-8', function(err, data) {
    if (err) {
        return console.log('文件读取失败' + err.message)
    }
    console.log('文件读取成功')
})

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

二、path 路径模块

path 模块是 Node.js 官方提供的、用来处理路径的模块

1、path.join() 路径拼接

path.join():用来将多个路径判断拼接成一个完整的路径字符串

参数:…paths <string></string> 路径片段的序列
返回值:返回值 <string></string>

path.join([...paths])

示例:路径拼接

// 导入 path 模块
const path = require(&#39;path&#39;)
// ../ 会抵消前面的路径
const pathStr = path.join(&#39;/a&#39;,&#39;/b/c&#39;, &#39;../&#39;, &#39;./d&#39;, &#39;e&#39;)
console.log(pathStr)

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)
备注:涉及到路径拼接的操作,都要使用 path.join() 方法进行处理。不要直接用 + 进行字符串拼接

示例:使用 path 进行路径拼接

const fs = require(&#39;fs&#39;)
const path = require(&#39;path&#39;)

// 文件读取
fs.readFile(path.join(__dirname, &#39;/files/score.txt&#39;), &#39;utf-8&#39;, function(err, data) {
    if (err) {
        return console.log(&#39;文件读取失败&#39;, err.message)
    }
    console.log(&#39;文件读取成功&#39;)
})

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

2、path.basename() 解析文件名

path.basename():用来从路径字符串中,将文件名解析出来

参数 1:path 必选参数,表示一个路径的字符串
参数 2:ext 可选参数,表达文件扩展名
返回值:返回 表示路径中的最后一部分

path.basename(path, [ext])

示例:解析路径,去除扩展名

// 导入 path 模块
const path = require(&#39;path&#39;)
// 文件的存放路径
const fpath = &#39;/a/b/c/index.html&#39;

// 将文件名解析出来
const fullName = path.basename(fpath)
console.log(fullName) // 输出 index.html

// 去除扩展名
const nameWithoutExt = path.basename(fpath, &#39;.html&#39;)

console.log(nameWithoutExt) // 输出 index

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

3、path.extname() 获取扩展名

path.extname():可以获取路径中的扩展名部分

参数:path <string></string> 必选参数,表示一个路径的字符串
返回值:返回 <string></string> 返回得到的扩展名字符串

path.extname(path)

示例:获取扩展名

// 导入 path 模块
const path = require('path')
// 文件的存放路径
const fpath = '/a/b/c/index.html'
// 获取扩展名
const fext = path.extname(fpath)

console.log(fext) // .html

Nodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)

更多node相关知识,请访问:nodejs 教程

以上がNodeのfsファイルモジュールとパスモジュールについて語る記事(事例分析)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。