NodeMCU-32S文件系统
土豆 2022/10/23 esp32
# 1.写入文件
SPIFFS.begin()
用于启动闪存文件系统。在每次使用闪存文件系统以前都需要执行这一操作。如果闪存文件系统成功启动,该函数的返回值为布尔型,如果成功启动闪存文件形同,则返回真。否则将返回假。
File dataFile = SPIFFS.open(file_name, "w");
这条语句中,open函数可用于对SPIFFS进行操作。该函数共有两个参数。第一个参数file_name
是被操作的文件名称,第二个参数"w"
代表此操作为向SPIFFS写入文件信息。请注意:如果文件系统没有此文件,此操作将会在文件系统中建立该文件。如果文件系统有该文件,则程序将会重新建立该文件,即原有文件信息将会被覆盖。
dataFile.println("Hello IOT World.");
用于向dataFile文件写入信息。
dataFile.close();
用于关闭dataFile文件。结束文件操作后,应执行此操作。
#include <SPIFFS.h>
// 被读取的文件位置和名称
String file_name = "/tudou/notes.txt";
void setup()
{
Serial.begin(115200);
Serial.println("");
Serial.println("SPIFFS fromat start");
// 格式化flash
SPIFFS.format();
Serial.println("SPIFFS format finish");
// 启动SPIFFS
if(SPIFFS.begin()){
Serial.println("SPIFFS Started.");
}else{
Serial.println("SPIFFS Failed to Start.");
}
// 建立File对象用于向SPIFFS中的file对象写入信息
File dataFile = SPIFFS.open(file_name,"w");
// 向dataFile写入字符信息
dataFile.println("Hello IOT World.");
// 关闭文件
dataFile.close();
Serial.println("Finished Writing data to SPIFFS");
}
void loop(void)
{
}
# 2.读取文件
SPIFFS.exists(file_name)
用于检查闪存文件系统中有file_name文件
File dataFile = SPIFFS.open(file_name, "r");
这条语句中,open函数可用于对SPIFFS进行操作。
dataFile.size()
。该函数将会返回dataFile的大小。
dataFile.read()
将会读取dataFile文件内容。
#include <SPIFFS.h>
// 被读取的文件位置和名称
String file_name = "/tudou/notes.txt";
void setup()
{
Serial.begin(115200);
Serial.println("");
// 启动SPIFFS
if(SPIFFS.begin()){
Serial.println("SPIFFS Started.");
}else{
Serial.println("SPIFFS Failed to Start.");
}
if(SPIFFS.exists(file_name)){
Serial.print(file_name);
Serial.println(" FOUND.");
}else{
Serial.print(file_name);
Serial.println(" FOUND.");
}
// 读取文件
File dataFile = SPIFFS.open(file_name,"r");
// 读取文件内容输出到串口
for(int i=0;i<dataFile.size();i++){
Serial.print((char)dataFile.read());
}
// 关闭文件
dataFile.close();
}
void loop(void)
{
}
串口输出
SPIFFS Started.
/tudou/notes.txt FOUND.
Hello IOT World.
# 3.追加信息
File dataFile = SPIFFS.open(file_name, "a");
第二个参数"a"
代表向该文件添加信息。
#include <SPIFFS.h>
// 被读取的文件位置和名称
String file_name = "/tudou/notes.txt";
void setup()
{
Serial.begin(115200);
Serial.println("");
// 启动SPIFFS
if(SPIFFS.begin()){
Serial.println("SPIFFS Started.");
}else{
Serial.println("SPIFFS Failed to Start.");
}
if(SPIFFS.exists(file_name)){
Serial.print(file_name);
Serial.println(" FOUND. ");
// 创建追加写对象
File dataFile = SPIFFS.open(file_name,"a");
// 追加信息内容
dataFile.println("This is Appended Info.");
}else{
Serial.println(file_name);
Serial.print(" NOT FOUND.");
}
}
void loop(void)
{
}
# 4.删除文件
SPIFFS.remove(file_name)
将file_name
所指代的文件进行了删除操作
#include <SPIFFS.h>
// 被读取的文件位置和名称
String file_name = "/tudou/notes.txt";
void setup()
{
Serial.begin(115200);
Serial.println("");
// 启动SPIFFS
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(void)
{
}