当前位置: 首页 > news >正文

[node] Node.js的文件系统

[node] Node.js的文件系统

  • 文件系统的使用
  • 异步和同步
    • input.txt
    • 示例
  • 常用方法
    • 打开文件
      • 语法
      • 示例
    • 获取文件信息
      • 语法
      • 示例
    • 写入文件
      • 语法
      • 示例
    • 读取文件
      • 语法
      • 示例
    • 关闭文件
      • 语法
      • 示例
    • 截取文件
      • 语法
      • 示例
    • 删除文件
      • 语法
      • 示例
    • 创建目录
      • 语法
      • 示例
    • 读取目录
      • 语法
      • 示例
    • 删除目录
      • 语法
      • 示例
  • 文件模块方法

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API

文件系统的使用

Node 导入文件系统模块(fs)语法如下:

var fs = require("fs")

异步和同步

Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。

异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。

建议使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。

input.txt

文件读取实例

示例

main.js

var fs = require("fs");
fs.readFile('input.txt', function (err, data) {// 异步读取if (err) {return console.error(err);}console.log("异步读取: " + data.toString());
});
var data = fs.readFileSync('input.txt');// 同步读取
console.log("同步读取: " + data.toString());
console.log("程序执行完毕。");
//终端执行 node main.js
//输出
// 同步读取: Test for read// 程序执行完毕。
// 异步读取: Test for read

常用方法

打开文件

语法

异步模式下打开文件:

fs.open(path, flags[, mode], callback)
  • path - 文件的路径。
  • flags - 文件打开的行为。标志说明看下表。
  • mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。
  • callback - 回调函数,带有两个参数如:callback(err, fd)。

flags标志说明:

Flag描述
r以读取模式打开文件。如果文件不存在抛出异常。
r+以读写模式打开文件。如果文件不存在抛出异常。
rs以同步的方式读取文件。
rs+以同步的方式读取和写入文件。
w以写入模式打开文件,如果文件不存在则创建。
wx类似 ‘w’,但是如果文件路径存在,则文件写入失败。
w+以读写模式打开文件,如果文件不存在则创建。
wx+类似 ‘w+’, 但是如果文件路径存在,则文件读写失败。
a以追加模式打开文件,如果文件不存在则创建。
ax类似 ‘a’, 但是如果文件路径存在,则文件追加失败。
a+以读取追加模式打开文件,如果文件不存在则创建。
ax+类似 ‘a+’, 但是如果文件路径存在,则文件读取追加失败。

示例

var fs = require("fs");
// 异步打开文件
console.log("准备打开文件!");
fs.open('input.txt', 'r+', function(err, fd) {if (err) {return console.error(err);}console.log("文件打开成功!");     
});
//终端执行 node main.js
//输出
// 准备打开文件!
// 文件打开成功!

获取文件信息

语法

异步模式下获取文件信息:

fs.stat(path, callback)
  • path - 文件路径
  • callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象

stats类中的方法有:

方法描述
stats.isFile()如果是文件返回 true,否则返回 false
stats.isDirectory()如果是目录返回 true,否则返回 false
stats.isBlockDevice()如果是块设备返回 true,否则返回 false
stats.isCharacterDevice()如果是字符设备返回 true,否则返回 false
stats.isSymbolicLink()如果是软链接返回 true,否则返回 false
stats.isFIFO()如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道
stats.isSocket()如果是 Socket 返回 true,否则返回 false

示例

fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性。例如判断是否为文件

var fs = require('fs');
fs.stat('/demo/fs.js', function (err, stats) {console.log(stats.isFile());         //true
})

写入文件

语法

异步模式下写入文件语法格式:

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

writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容

  • file - 文件名或文件描述符
  • data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象
  • options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 ‘w’,这里flag的取值可以参考打开文件中flag的取值范围
  • callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回

示例

mian.js

var fs = require("fs");
console.log("准备写入文件");
fs.writeFile('input.txt', '通过fs.writeFile 写入文件的内容',  function(err) {if (err) {return console.error(err);}console.log("数据写入成功!");console.log("--------分割线-------------")console.log("读取写入的数据!");fs.readFile('input.txt', function (err, data) {if (err) {return console.error(err);}console.log("异步读取文件数据: " + data.toString());});
});
//终端执行 node main.js
//输出
// 准备写入文件
// 数据写入成功!
// --------分割线-------------
// 读取写入的数据!
// 异步读取文件数据: 通过fs.writeFile 写入文件的内容

读取文件

语法

异步模式下读取文件语法格式:

fs.read(fd, buffer, offset, length, position, callback)

该方法使用了文件描述符来读取文件

  • fd - 通过 fs.open() 方法返回的文件描述符
  • buffer - 数据写入的缓冲区
  • offset - 缓冲区写入的写入偏移量
  • length - 要从文件中读取的字节数
  • position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取
  • callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象

示例

mian.js

var fs = require("fs");
var buf = new Buffer.alloc(1024);console.log("准备打开已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {if (err) {return console.error(err);}console.log("文件打开成功!");console.log("准备读取文件:");fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){if (err){console.log(err);}console.log(bytes + "  字节被读取");// 仅输出读取的字节if(bytes > 0){console.log(buf.slice(0, bytes).toString());}});
});
//终端执行 node main.js
//txt文件内容是: 文件读取实例
//输出
// 准备打开已存在的文件!
// 文件打开成功!
// 准备读取文件:
// 20  字节被读取
// 文件读取实例

关闭文件

语法

异步模式下关闭文件语法格式:

fs.close(fd, callback)
  • fd - 通过 fs.open() 方法返回的文件描述符
  • callback - 回调函数,没有参数

示例

mian.js

var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("准备打开文件!");
fs.open("input.txt", "r+", function (err, fd) {if (err) {return console.error(err);}console.log("文件打开成功!");console.log("准备读取文件!");fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) {if (err) {console.log(err);}if (bytes > 0) {console.log(buf.slice(0, bytes).toString()); // 仅输出读取的字节}// 关闭文件fs.close(fd, function (err) {if (err) {console.log(err);}console.log("文件关闭成功");});});
});
//终端执行 node main.js
//输出
// 准备打开文件!
// 文件打开成功!
// 准备读取文件!
// 文件读取实例// 文件关闭成功

截取文件

语法

异步模式下截取文件语法格式:

fs.ftruncate(fd, len, callback)
  • fd - 通过 fs.open() 方法返回的文件描述符
  • len - 文件内容截取的长度
  • callback - 回调函数,没有参数

示例

input.txt

Test for read or write!!!

mian.js

var fs = require("fs");
console.log("准备写入文件");
fs.writeFile('input.txt', '通过fs.writeFile 写入文件的内容',  function(err) {if (err) {return console.error(err);}console.log("数据写入成功!");console.log("--------分割线-------------")console.log("读取写入的数据!");fs.readFile('input.txt', function (err, data) {if (err) {return console.error(err);}console.log("异步读取文件数据: " + data.toString());});
});
//终端执行 node main.js
//输出
// 准备打开文件!
// 文件打开成功!
// 截取10字节内的文件内容,超出部分将被去除。
// 文件截取成功。
// 读取相同的文件
// Test for r
// 文件关闭成功!

删除文件

语法

删除文件语法格式:

fs.unlink(path, callback)
  • path - 文件路径
  • callback - 回调函数,没有参数

示例

mian.js

var fs = require("fs");
console.log("准备删除文件!");
fs.unlink("input.txt", function (err) {if (err) {return console.error(err);}console.log("文件删除成功!");
});
//终端执行 node main.js
//输出
// 准备删除文件!
// 文件删除成功!

此时 input.txt 文件已经不存在

创建目录

语法

异步模式下创建目录语法格式:

fs.mkdir(path[, options], callback)
  • path - 文件路径
  • options - 参数可以是:
    • recursive - 是否以递归的方式创建目录,默认 false
    • mode - 设置目录权限,默认为 0777
  • callback - 回调函数,没有参数

示例

mian.js

var fs = require("fs");console.log("创建目录 /tmp/");
fs.mkdir("/tmp/", function (err) {if (err) {return console.error(err);}console.log("目录创建成功。");
});
//终端执行 node main.js
//输出
// 创建目录 /tmp/
// 目录创建成功。

若是创建的是嵌套的目录,例如"/temp/test/,必须保证上级目录temp存在,否则会导致报错

若是不存在上级目录而成功创建test,则需添加参数recursive,因为该参数用于控制是否递归创建目录:

fs.mkdir('/temp/test', { recursive: true }, (err) => {if (err) throw err;
});

读取目录

语法

异步模式下读取目录语法格式:

fs.readdir(path, callback)
  • path - 文件路径
  • callback - 回调函数,回调函数带有两个参数:
    • err 为错误信息
    • files 为 目录下的文件数组列表。

示例

mian.js

var fs = require("fs");
console.log("查看 /bin 目录");
fs.readdir("bin/", function (err, files) {if (err) {return console.error(err);}files.forEach(function (file) {console.log(file);});
});
//终端执行 node main.js
//输出
// 查看 /bin 目录
// index.js
// readme.md

删除目录

语法

删除目录语法格式:

fs.rmdir(path, callback)
  • path - 文件路径
  • callback - 回调函数,没有参数。

示例

mian.js

var fs = require("fs");
// 执行前创建一个空的 temp/test 目录
console.log("准备删除目录 temp/test");
fs.rmdir("temp/test", function (err) {if (err) {return console.error(err);}console.log("读取 temp 目录");fs.readdir("temp", function (err, files) {if (err) {return console.error(err);}files.forEach(function (file) {console.log(file);});});
});
//终端执行 node main.js
//输出
// 准备删除目录 temp/test
// 读取 temp 目录

文件模块方法

以下为 Node.js 文件模块的方法列表:

方法描述
fs.rename(oldPath, newPath, callback)异步 rename().回调函数没有参数,但可能抛出异常
fs.ftruncate(fd, len, callback)异步 ftruncate().回调函数没有参数,但可能抛出异常
fs.ftruncateSync(fd, len)同步 ftruncate()
fs.truncate(path, len, callback)异步 truncate().回调函数没有参数,但可能抛出异常。
fs.truncateSync(path, len)同步 truncate()
fs.chown(path, uid, gid, callback)异步 chown().回调函数没有参数,但可能抛出异常。
fs.chownSync(path, uid, gid)同步 chown()
fs.fchown(fd, uid, gid, callback)异步 fchown().回调函数没有参数,但可能抛出异常。
fs.fchownSync(fd, uid, gid)同步 fchown()
fs.lchown(path, uid, gid, callback)异步 lchown().回调函数没有参数,但可能抛出异常。
fs.lchownSync(path, uid, gid)同步 lchown()
fs.chmod(path, mode, callback)异步 chmod().回调函数没有参数,但可能抛出异常。
fs.chmodSync(path, mode)同步 chmod().
fs.fchmod(fd, mode, callback)异步 fchmod().回调函数没有参数,但可能抛出异常。
fs.fchmodSync(fd, mode)同步 fchmod().
fs.lchmod(path, mode, callback)异步 lchmod().回调函数没有参数,但可能抛出异常。Only available on Mac OS X.
fs.lchmodSync(path, mode)同步 lchmod().
fs.stat(path, callback)异步 stat(). 回调函数有两个参数 err, stats,stats 是 fs.Stats 对象。
fs.lstat(path, callback)异步 lstat(). 回调函数有两个参数 err, stats,stats 是 fs.Stats 对象。
fs.fstat(fd, callback)异步 fstat(). 回调函数有两个参数 err, stats,stats 是 fs.Stats 对象。
fs.statSync(path)同步 stat(). 返回 fs.Stats 的实例。
fs.lstatSync(path)同步 lstat(). 返回 fs.Stats 的实例。
fs.fstatSync(fd)同步 fstat(). 返回 fs.Stats 的实例。
fs.link(srcpath, dstpath, callback)异步 link().回调函数没有参数,但可能抛出异常。
fs.linkSync(srcpath, dstpath)同步 link().
fs.symlink(srcpath, dstpath[, type], callback)异步 symlink().回调函数没有参数,但可能抛出异常。 type 参数可以设置为 ‘dir’, ‘file’, 或 ‘junction’ (默认为 ‘file’) 。
fs.symlinkSync(srcpath, dstpath[, type])同步 symlink().
fs.readlink(path, callback)异步 readlink(). 回调函数有两个参数 err, linkString。
fs.realpath(path[, cache], callback)异步 realpath(). 回调函数有两个参数 err, resolvedPath。
fs.realpathSync(path[, cache])同步 realpath()。返回绝对路径。
fs.unlink(path, callback)异步 unlink().回调函数没有参数,但可能抛出异常。
fs.unlinkSync(path)同步 unlink().
fs.rmdir(path, callback)异步 rmdir().回调函数没有参数,但可能抛出异常。
fs.rmdirSync(path)同步 rmdir().
fs.mkdir(path[, mode], callback)S异步 mkdir(2).回调函数没有参数,但可能抛出异常。 访问权限默认为 0777。
fs.mkdirSync(path[, mode])同步 mkdir().
fs.readdir(path, callback)异步 readdir(3). 读取目录的内容。
fs.readdirSync(path)同步 readdir().返回文件数组列表。
fs.close(fd, callback)异步 close().回调函数没有参数,但可能抛出异常。
fs.closeSync(fd)同步 close().
fs.open(path, flags[, mode], callback)异步打开文件。
fs.openSync(path, flags[, mode])同步 version of fs.open().
fs.utimes(path, atime, mtime, callback)异步修改指定路径path的文件时间戳
fs.utimesSync(path, atime, mtime)修改指定路径path的文件时间戳
fs.futimes(fd, atime, mtime, callback)异步修改文件时间戳,通过文件描述符指定
fs.futimesSync(fd, atime, mtime)修改文件时间戳,通过文件描述符指定。
fs.fsync(fd, callback)异步 fsync.回调函数没有参数,但可能抛出异常。
fs.fsyncSync(fd)同步 fsync.
fs.write(fd, buffer, offset, length[, position], callback)将缓冲区内容写入到通过文件描述符指定的文件。
fs.write(fd, data[, position[, encoding]], callback)通过文件描述符 fd 写入文件内容。
fs.writeSync(fd, buffer, offset, length[, position])同步版的 fs.write()。
fs.writeSync(fd, data[, position[, encoding]])同步版的 fs.write().
fs.read(fd, buffer, offset, length, position, callback)通过文件描述符 fd 读取文件内容。
fs.readSync(fd, buffer, offset, length, position)同步版的 fs.read.
fs.readFile(filename[, options], callback)异步读取文件内容。
fs.readFileSync(filename[, options])fs.writeFile(filename, data[, options], callback)
fs.writeFileSync(filename, data[, options])同步版的 fs.writeFile。
fs.appendFile(filename, data[, options], callback)异步追加文件内容。
fs.appendFileSync(filename, data[, options])The 同步 version of fs.appendFile.
fs.watchFile(filename[, options], listener)查看文件的修改。
fs.unwatchFile(filename[, listener])停止查看 filename 的修改。
fs.watch(filename[, options][, listener])查看 filename 的修改,filename 可以是文件或目录。返回 fs.FSWatcher 对象。
fs.exists(path, callback)检测给定的路径是否存在。
fs.existsSync(path)同步版的 fs.exists.
fs.access(path[, mode], callback)测试指定路径用户权限
fs.accessSync(path[, mode])同步版的 fs.access
fs.createReadStream(path[, options])返回ReadStream 对象
fs.createWriteStream(path[, options])返回 WriteStream 对象
fs.symlink(srcpath, dstpath[, type], callback)异步 symlink().回调函数没有参数,但可能抛出异常

相关文章:

[node] Node.js的文件系统

[node] Node.js的文件系统 文件系统的使用异步和同步input.txt示例 常用方法打开文件语法示例 获取文件信息语法示例 写入文件语法示例 读取文件语法示例 关闭文件语法示例 截取文件语法示例 删除文件语法示例 创建目录语法示例 读取目录语法示例 删除目录语法示例 文件模块方法…...

【Linux系统基础】(2)在Linux上部署MySQL、RabbitMQ、ElasticSearch、Zookeeper、Kafka、NoSQL等各类软件

实战章节:在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,…...

CJson 使用 - 解析Object结构

简介 准备在开发板中使用json结构传送数据, 选用了cJson, 现在看下cJson的使用吧步骤 下载 git clone https://github.com/DaveGamble/cJSON 或者直接压缩包下载也行, 毕竟国内有时候下载不下来Qt 中使用cJson 在下载的cJson 目录中加入cJson.pri, 内容如下 INCLUDEPATH …...

MySQL8主主搭建

-- mysql8 主主搭建 mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz 主1 : 192.168.2.160 主2 : 192.168.2.161 --解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz为mysql8 -- 初始化mysql8 (略) -- 参数192.168.2.160 [root…...

使用Pycharm一键将.ui文件生成.py文件配置教程、一键打开QTDesigner教程

2df3621a-7ffd-4f18-9735-b86464b83a5b 前言 我痛恨所有将白嫖归为理所应当的猪🐖。 教程 打开pycharm之后,依次点击File->Settings->Tools->External Tools,进入如下界面: 1、配置快捷打开Qt Designer 点击号&…...

React 路由跳转

1. push 与 replace 模式 默认情况下,开启的是 push 模式,也就是说,每次点击跳转,都会向栈中压入一个新的地址,在点击返回时,可以返回到上一个打开的地址, 就像上图一样,我们每次返…...

【MySQL】数据处理:从SQL批量删除报错到Python优雅解决

一、背景 MySQL数据库表中有一批重复的脏数据,为不影响正常业务,需要进行批量删除。 二、SQL批量删除 首先想到的是编写SQL语句来批量删除:删除身份证号为51****59且ID不为5的全部数据(保留ID为5的那一条数据) DELETE FROM test_table WHERE id IN ( SELECT i…...

Rust 软件测试

Rust 第18节 软件测试 测试已写的函数 在创建每一个lib crate时,rust都会自动生产一个测试 mod;名字为tests; tests mod 被属性 #[cfg(test)] 修饰,用于测试; 在mod 内,需要在函数头上加属性 #[test]进行修饰,让其变为…...

win11下配置visual studio 2022+PCL1.13.1

第一部分:visual studio2022 安装 vs官网网址如下:https://visualstudio.microsoft.com/zh-hans/vs/ 第一步:我们打开官网链接,按如下操作点击下载免费版本的exe文件 第二步:打开下载目录下的安装文件进行安装&#…...

智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.…...

【分享】4个方法打开PDF文件

PDF是很多人工作中经常使用的电子文档格式,但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件,今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器,其实浏览器也可以用来打开PDF文件。 只需…...

React 调试

React 调试 console 调试 console.log console.info console.warn console.error console.time() & console.timeEnd() console.count() debugger调试 chrome断点调试 chrome条件断点 HTML节点复制 选中节点,使用 $0复制 JavaScript对象复制 copy…...

List 流的使用

摘要 本文将介绍在 Java 1.8 中对 List 进行流操作的使用方法。引入的 java.util.stream 包为开发者提供了一种更为便捷和强大的方式来处理集合数据。通过使用流,我们能够以声明性的方式进行集合操作,减少了样板代码,提高了代码的可读性和可…...

设计模式:单例模式(使用c++分别实现饿汉式单例、带双重检查锁定机制的懒汉式单例以及IoDH技术的单例)

单例模式 引言正文1. 饿汉式单例2. 带双重检查锁定机制的懒汉式单例3. IoDH技术的单例 结论优点饿汉式单例带双重检查锁定机制的懒汉式单例IoDH技术的单例 缺点饿汉式单例带双重检查锁定机制的懒汉式单例IoDH技术的单例 引言 在软件开发中,单例模式是一种很常用的设…...

[编程相关]正则表达式Regex语法

--目录-- 0. 前言1. 正则语法2. 正则搜索语法(1)字符集 Character_Classes(2)锚定符 Anchors(3)计数 Quantifiers(4)分组与索引 Group_And_Reference(5)周围 …...

axios实例配置和使用

一.vite项目中引入axios 1.1.安装axios pnpm add axios --save 二.配置axios实例 2.1实例配置 import axios from ‘axios’ import router from ‘/router’ const instance axios.create({ baseURL:“http://127.0.0.1:8080”, timeout:10*1000, //最长响应时间 }) instan…...

uni-app 工程目录结构介绍

锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…...

YOLOv8改进 | 主干篇 | 利用SENetV2改进网络结构 (全网首发改进)

一、本文介绍 本文给大家带来的改进机制是SENetV2,其是2023.11月的最新机制(所以大家想要发论文的可以在上面下点功夫),其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而是一个可以和现有的任何…...

TUP实现一对一聊天

package TCP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * 发送消息线程 */ class Send ext…...

Kafka设计原理详解

Kafka核心总控制器 (Controller) 在Kafka集群中,通常会有一个或多个broker,其中一个会被选举为控制器 (Kafka Controller),其主要职责是管理整个集群中所有分区和副本的状态。具体来说: 当某个分区的leader副本出现故障时&#…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

OpenHarmony标准系统-HDF框架之I2C驱动开发

文章目录 引言I2C基础知识概念和特性协议,四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...

统计按位或能得到最大值的子集数目

我们先来看题目描述: 给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。 如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,…...