1.存储的文件是编译后的;
用闪存文件系统时要申请空间

2. SPIFFS.begin(); 启用闪存文件系统;
3. SPIFFS.format(); 格式化SPIFFS.open(file_name【被操作的文件位置+文件名】,"代表要对文件进行的操作") w代表写入,从文件最开始的地方写入,不会保留原来的内容;r代表读取;a代表添加信息,保留文件前面原有的信息,在后边写入信息;a与w在写入时,如果没有该文件,就自己创建。
4.File dataFile=SPIFFS.open(file_name,"w");
(1). dataFile.println("代表写入文件的内容");
(2). dataFile.close(); 关闭dataFile文件;
(3). dataFile.size(); 返回读取的dataFile文件大小;
(4). (char)dataFile.size(); 读取dataFile文件的内容,每次只返回一个char类型的数据
5.SPIFFS.exists(file_name); 检查闪存中是否有file_name文件;
6. SPIFFS.remove(file_name); 删除文件file_name;删除成功会返回true;
7. Dir dir = SPIFFS.openDir(folder_name); // 建立“目录”对象
8. dir.next() 用于检查目录中是否还有“下一个文件”,如果有返回true
9.dir.fileName() 获取文件名;
10. FSInfo fs_info;
建立了FSInfo 对象,用于存储闪存状态信息。
(1). SPIFFS.info(fs_info);
通过info函数将闪存状态信息赋给fs_info。
(2).fs_info.totalBytes 返回可用空间总和
(3). fs_info.usedBytes 返回已用空间
(4). fs_info.maxPathLength 返回最大文件名字符限制(含路径和‘\0’)
(5). fs_info.maxOpenFiles 返回最多允许打开文件数量
(6).fs_info.blockSize 返回储存块大小
(7).fs_info.pageSize 返回储存页大小
1. 通过程序向闪存文件系统写入信息
#include <FS.h>
String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
void setup() {
Serial.begin(115200);
Serial.println("");
Serial.println("SPIFFS format start");
SPIFFS.format(); // 格式化SPIFFS
Serial.println("SPIFFS format finish");
if(SPIFFS.begin()){ // 启动SPIFFS
Serial.println("SPIFFS Started.");
} else {
Serial.println("SPIFFS Failed to Start.");
}
// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
File dataFile = SPIFFS.open(file_name, "w");// open函数可用于对SPIFFS进行操作;
"w"代表此操作作为想SPIFFS写入文件信息,如果文件系统中没有文件file_name,程序会建立该文件
dataFile.println("Hello IOT World."); // 向dataFile写入字符串信息
dataFile.close(); // 完成文件写入后关闭文件
Serial.println("Finished Writing data to SPIFFS");
}
void loop() {
}
2. 从闪存文件系统中读取文件
#include <FS.h>
String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
void setup() {
Serial.begin(115200);
Serial.println("");
if(SPIFFS.begin()){ // 启动闪存文件系统
Serial.println("SPIFFS Started.");
} else {
Serial.println("SPIFFS Failed to Start.");
}
//确认闪存中是否有file_name文件
if (SPIFFS.exists(file_name)){
Serial.print(file_name);
Serial.println(" FOUND.");
} else {
Serial.print(file_name);
Serial.print(" NOT FOUND.");
}
//建立File对象用于从SPIFFS中读取文件
File dataFile = SPIFFS.open(file_name, "r");
//读取文件内容并且通过串口监视器输出文件信息
读取时只会读取一个,(char)是指定读取的信息char类型输出
for(int i=0; i<dataFile.size(); i++){
Serial.print((char)dataFile.read());
}
//完成文件读取后关闭文件
dataFile.close();
}
void loop() {
}
3. 删除闪存文件系统的文件
#include <FS.h>
String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
void setup() {
Serial.begin(115200);
Serial.println("");
if(SPIFFS.begin()){ // 启动闪存文件系统
Serial.println("SPIFFS Started.");
} else {
Serial.println("SPIFFS Failed to Start.");
}
//从闪存中删除file_name文件
if (SPIFFS.remove(file_name)){
Serial.print(file_name);
Serial.println(" remove sucess");
} else {
Serial.print(file_name);
Serial.println(" remove fail");
}
}
void loop() {
}
4. 向闪存文件系统中的文件添加信息
#include <FS.h>
String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
void setup() {
Serial.begin(9600);
Serial.println("");
if(SPIFFS.begin()){ // 启动闪存文件系统
Serial.println("SPIFFS Started.");
} else {
Serial.println("SPIFFS Failed to Start.");
}
//确认闪存中是否有file_name文件
if (SPIFFS.exists(file_name)){
Serial.print(file_name);
Serial.println(" FOUND.");
File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息
dataFile.close(); // 完成文件操作后关闭文件
Serial.println("Finished Appending data to SPIFFS");
} else {
Serial.print(file_name);
Serial.print(" NOT FOUND.");
}
}
void loop() {
}
5.读取闪存文件系统中的文件夹的文件名
#include <FS.h>
String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称
void setup() {
Serial.begin(9600);
Serial.println("");
if(SPIFFS.begin()){ // 启动闪存文件系统
Serial.println("SPIFFS Started.");
} else {
Serial.println("SPIFFS Failed to Start.");
}
//确认闪存中是否有file_name文件
if (SPIFFS.exists(file_name)){
Serial.print(file_name);
Serial.println(" FOUND.");
File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息
dataFile.close(); // 完成文件操作后关闭文件
Serial.println("Finished Appending data to SPIFFS");
} else {
Serial.print(file_name);
Serial.print(" NOT FOUND.");
}
}
void loop() {
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)