1.通过程序向闪存文件系统写入信息
//本例程是向我们指定的文件路径文本中写入想要写入的内容
#include <FS.h>//包含文件系统的头文件
//定义一个文件名,以后把信息放在ESP8266-FS文件中的一个first.txt文本中
String file_name = "/ESP8266-FS/first.txt";
void setup(){
Serial.begin(9600);//开启串口,波特率为9600
Serial.println("");//打印一个空格
Serial.println("SPIFFS format start");//打印信息:闪存文件系统格式化准备开始
SPIFFS.format();//先格式化,避免FLASH中存在别人保存的信息,影响后续的操作现象
Serial.println("SPIFFS Format Finished!");
//启动SPIFFS
if(SPIFFS.begin()){
Serial.println("SPIFFS Started!");
}else{
Serial.println("SPIFFS Failed to Start!");
}
File dataFile = SPIFFS.open(file_name,"w");//向指定的文件路径中,写入数据
dataFile.println("Hello LOT World!");//向文件中写入的内容
dataFile.close();//写完毕,关闭文件
Serial.println("Finished Writing to data to SPIFFS!");//打印信息,表示已经完成了向文件系统中写入数据
}
void loop(){
}
1.1 实验结果
SPIFFS format start
SPIFFS Format Finished!
SPIFFS Started!
Finished Writing to data to SPIFFS!
2.通过程序从闪存文件系统读取信息
//本例程是用来读取写入操作系统文件中的信息内容
#include <FS.h>
String file_name = "/ESP8266-FS/first.txt";
void setup(){
Serial.begin(9600);//开启串口,波特率为9600
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(" Not Found! ");
}
//建立File对象用于从SPIFFS中读取文件
File dataFile = SPIFFS.open(file_name,"r");//向指定的文件路径中,读取数据
int i = 0;//定义一个循环变量
for(i=0;i<dataFile.size();i++){//读取文件的大小是改内容的大小
Serial.print((char)dataFile.read());//打印文件中的内容信息
}
dataFile.close();//读取完毕后,关闭文件系统
}
void loop(){
}
2.2 实验结果
SPIFFS Started!
/ESP8266-FS/first.txt Found!
Hello IOT World.
3.通过程序向闪存文件系统文件添加信息
//本例程是在原本的目标文件夹中的信息中添加新的数据信息
#include <FS.h>
String file_name = "/ESP8266-FS/first.txt";
void setup(){
Serial.begin(9600);//开启串口,波特率为9600
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");//添加的数据内容信息
dataFile.close();//添加完毕后,关闭文件系统
Serial.println("Finished Appending data to SPIFFS");
}else{
Serial.print(file_name);
Serial.println(" Not Found! ");
}
}
void loop(){
}
3.3 实验结果
SPIFFS Started!
/ESP8266-FS/first.txt Found!
Hello IOT World.
This is Appended Info
This is Appended Info
4.通过程序读取目录内容
//本例程是在通过程序读取目录内容
#include <FS.h>
String file_name = "/ESP8266-FS/Second.txt";//在新添加一个文件文本
String folder_name = "/ESP8266-FS";//读取的数据的根目录文件夹
void setup(){
Serial.begin(9600);//开启串口,波特率为9600
Serial.println("");//打印一个空格
//启动SPIFFS
if(SPIFFS.begin()){
Serial.println("SPIFFS Started!");
}else{
Serial.println("SPIFFS Failed to Start!");
}
File dataFile = SPIFFS.open(file_name,"w");//向第二个文件中写入数据,然后后面读出来
dataFile.println("Hello Mrs Chen.");//添加的数据内容信息
dataFile.close();//添加完毕后,关闭文件系统
Serial.println("Finished Writing data to SPIFFS");
//显示目录中文件内容以及文件大小。
Dir dir = SPIFFS.openDir(folder_name);//打开根目录下的文件夹的信息
while(dir.next()){//用于检查目录中是否还有"下一个文件"
Serial.println(dir.fileName());//输出文件名
}
}
void loop(){
}
4.4 实验现象
SPIFFS Started!
Finished Writing data to SPIFFS
/ESP8266-FS/first.txt
/ESP8266-FS/Second.txt
5.从闪存文件系统中删除文件
//本例程是从闪存文件系统中删除文件
#include <FS.h>
String file_name = "/ESP8266-FS/first.txt";//选择要删除的文件
void setup(){
Serial.begin(9600);//开启串口,波特率为9600
Serial.println("");//打印一个空格
//启动SPIFFS
if(SPIFFS.begin()){
Serial.println("SPIFFS Started!");
}else{
Serial.println("SPIFFS Failed to Start!");
}
if(SPIFFS.remove(file_name)){
Serial.print(file_name);
Serial.println(" removed success!");
}else{
Serial.print(file_name);
Serial.println(" Fail to remove!");
}
}
void loop(){
}
5.5 实验现象
SPIFFS Started!
/ESP8266-FS/first.txt Fail to remove!
关于这里输出Fail to remove的原因是:我们把它移除了,但是我们为了看实验结果,按了复位键,这个时候,肯定是找不到这个文件的,所有显示失败,实际是成功的移除了,不妨用4通过读取目录内容去看看串口的信息,你就会发现,没有first.txt这个文本了。