3-3 ESP8266闪存文件系统(SPIFFS)

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这个文本了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值