一,介绍

在本教程中我将检测在ESP32 使用SPIFFS 文件系统从文件中读取内容,有关于如何编写文件的详细教程,请看上一篇的教程。

在下面的的代码中,我们将在读取之前编写该文件。但如果你已经按照上一个教程进行操作的话,你可以跳过这一步。因为该文件已经保留在SPIFFS 文件系统中了。

二,硬件

ESP32开发板

三,电路图

四,代码设计

我们通过包含SPIFFS.h库来启动代码,因此我们可以访问从文件写入和读取所需的方法。请记住,在上一个教程中,通过包含此库,我们将可以访问SPIFFSextern变量,该变量将是用于与文件系统交互的变量。

#include "SPIFFS.h"

继续使用Arduino设置功能,我们首先初始化一个串行连接,以便稍后打印从文件中读取的内容。

Serial.begin(115200);

现在我们将通过调用SPIFFS  extern变量上的begin方法来挂载文件系统,将值true传递给输入,这样可以确保在安装失败的情况下格式化文件系统。

由于对文件系统安装成功的情况下调用begin方法返回true,否则返回false,我们也会进行错误检查以确认所有内容都已正确初始化。

if(!SPIFFS.begin(true)){

Serial.println("An Error has occurred while mounting SPIFFS");

return;

}

现在我们将负责编写一个名为“ /test.txt ” 的文件,相应之前我们在上一个教程中介绍过的内容。如果您已按照上一个教程并已创建该文件,则可以跳过此部分代码。

因此,我们将首先打开文件进行编写,在SPIFFS对象上调用open方法。作为第一个输入,我们传递文件的名称,然后我们传递常量FILE_WRITE,因此文件以书写模式打开。

此方法调用将返回类File的对象,我们将使用它来编写内容。

如果文件成功打开,我们将在File对象上调用print方法,将带有要写入内容的字符串作为输入传递。

我们最后会调用File对象上的close方法,以便关闭文件。

File file = SPIFFS.open("/test.txt", FILE_WRITE);

if(!file){

Serial.println("There was an error opening the file for writing");

return;

}

if(file.print("TEST")){

Serial.println("File was written");;

} else {

Serial.println("File write failed");

}

file.close();

现在我们已经创建了文件并编写了一些内容,我们将打开它来阅读其内容。

为了打开文件进行读取,我们再次调用SPIFFS extern变量上的open方法,将文件名称作为输入传递(记住它是“/test.txt”)。从此头文件中可以看出,文件的默认打开模式是读取,因此我们不需要传递指示打开模式的第二个参数。

同样,这将返回类File的对象。请记住,在上一个教程中,File类会覆盖Boolean C ++运算符,因此我们可以使用if条件来检查文件是否已成功打开。

File file2 = SPIFFS.open("/test.txt");

if(!file2){

Serial.println("Failed to open file for reading");

return;

}

我们现在将循环读取文件中的内容。我们将调用File对象上的available方法来检查剩下要读取的字节数,并使用返回的值作为读取循环的停止条件。

要从文件中读取一个字节,我们调用File对象的read方法,并将结果打印到串行端口。

while(file2.available()){

Serial.write(file2.read());

}

读完所有字节后,我们通过调用File对象上的close方法来关闭文件。

file2.close();

最终的源代码如下所示。

隐藏内容,您需要满足以下条件方可查看

End

五,测试代码

要测试代码,请将其编译并上传到ESP32。完成该过程后,打开Arduino IDE串行监视器。您应该获得类似于图1的输出,该输出显示正在打印到监视器的文件的内容。

图1

esp32 micropython spiffs_二十一,ESP32 SPIFFS:读取一个文件相关推荐

  1. python读取一个文件夹/子文件夹下的所有文件名字

    python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...

  2. java基础IO流使用读取一个文件中的文字输出到控制台上

    读取一个文件中的文字输出到控制台上 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IO ...

  3. 不用for loop循环一个读取一个文件

    不用for loop循环一个读取一个文件 怎样在不使用for loop的情况下循环读取一个文件并将内容显示出来呢? #!/usr/bin/env python #coding:utf-8 #@Auth ...

  4. Lua 如何快速的读取一个文件

    2019独角兽企业重金招聘Python工程师标准>>> 如何使用Lua 优雅并快速的读取一个文件的全部内容? 在这里我们可以看一下代码: local open = io.open l ...

  5. 读取一个文件,将其Base64编码,每76个字符加一个换行

    <?php //读取一个文件,将其Base64编码,每76个字符加一个换行 $path = 'C://UsbLogger.txt'; if(is_file($path))//判断是否为文件 {$ ...

  6. esp32 micropython spiffs_spiffs 文件系统在esp32中的应用

    spiffs 介绍 SPIFFS 是一个开源文件系统,用于 SPI NOR flash 设备的嵌入式文件系统,支持磨损均衡.文件系统一致性检查等功能.spiffs 源码地址​github.com sp ...

  7. io读取一个文件再写入socket技术_Kafka必须掌握的核心技术--为什么吞吐量大、速度快?...

    Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序. Kafka虽然是基于磁盘做的数据存储,但却具有高性能.高吞吐.低延时的特点,其吞 ...

  8. matlab读取一个文件的图片大小,Matlab读取文件夹中子文件夹中的图片并修改尺寸...

    今天被师兄问到如何利用matlab批处理图片,觉得很简单嘛 就让他去百度 结果只百度到处理文件夹中图片的程序 好吧 这里放上如何处理文件夹中子文件夹的图片 现状:在一个名为casia的文件夹中,里面有 ...

  9. python中获取目录下所有文件名以及读取一个文件内的每一行

    2020-12-25 读取目录下所有文件 img_list=os.listdir(img_path) 获取img_path下所有文件名,返回值类型为list,同时也可以得到该目录下所有文件夹名 读取文 ...

最新文章

  1. 中国队刷新知识图谱“世界杯”,但点开冠军团队一看,我愣住了
  2. 史记.饭岛爱列传(转)
  3. Android集成三方浏览器之Crosswalk
  4. 开源视频平台:Kaltura
  5. 敏捷模式下携程的接口自动化平台演变
  6. c语言快速平方根算法,单片机开平方的快速算法
  7. Deep Match to Rank Model for Personalized Click-Through Rate Prediction
  8. 目标检测 YOLOv5 - ncnn模型的加密 C++实现封装库和Android调用库示例
  9. 制作 Google Chrome 绿色版
  10. FF新推荐新闻删除方法
  11. 有信号但是无法连接到移动网络连接服务器,手机无法连接到移动网络,这个怎么解决?...
  12. 微信小程序中引用FontAwesome字体 最完整教程 附下载源码
  13. 中国石油大学(北京)-《油气藏经营管理 》在线考试
  14. 挂牌、摘牌、停牌与复牌
  15. Java单元测试的意义_关于java单元测试的作用和必要性?
  16. 用vue实现H5页面托拽的div(兼容pc与移动端)
  17. 属狗的男宝宝取名专用单字
  18. 计算机科学与技术的发展史简介,信息技术的发展历史
  19. tiptop 编译运行_TIPTOP_画面档修改说明
  20. UnfamiliarWords-2

热门文章

  1. Django 无法加载静态文件(js,css,image)解决办法
  2. win32thread.c:(.text+0x60):对‘_beginthreadex’未定义的引用
  3. libstdc++.so.6: version `GLIBCXX_3.4.21' not found
  4. python多条件排序
  5. java实现高斯赛德尔算法解线性方程组
  6. 青龙羊毛——广汽三菱(搬运)
  7. 二十四、redis发布订阅
  8. 计算机音乐作曲排名2019,2019金曲排行榜_2019《全球华人歌曲排行榜》年度五强名单公布...
  9. 计算机pe开启网络模块,组装的电脑进入PE是哪个键
  10. python arp脚本_Python scapy 实现一个简易 arp 攻击脚本