|
| SDカード 書き込み |
|
書き込みは新規にファイルを作成する場合(すでにあるファイルを新規に作り直す場合も同じ)、
作成したファイルにデータを追加する場合があります。 サンプルプログラムです。
/*
*******************************************************************************
* M5Stack prototype
* date:2022/7/04
* Author Sadajejeje
*******************************************************************************
*/
#include <M5Core2.h>
void overWrite();
void appendWrite();
void setup(){
// M5Stackの初期化
M5.begin();
// 文字サイズを変更
M5.Lcd.setTextSize(2);
overWrite();
appendWrite();
}
void loop(){
}
void overWrite(){
uint8_t buf[] = "abcd";
// ファイルオープン
File file = SD.open("/text/hello.txt",FILE_WRITE, true);
if (file) {
//1文字書き込み
file.write(buf[0]);
file.write('\n');
//まとめて書き込み
file.write(buf, strlen((const char*)buf));
file.write('\n');
// ファイルクローズ
file.close();
}
else{
M5.Lcd.println("File open error hello.txt");
}
}
void appendWrite(){
uint8_t buf[] = "xyz\n";
// ファイルオープン
const char *fimename = "/text/hoge.txt";
bool create = !SD.exists(fimename);
M5.Lcd.println(create);
File file = SD.open(fimename,FILE_WRITE,create);
if (file) {
file.seek(file.size());
//まとめて書き込み
file.write(buf, strlen((const char*)buf));
// ファイルクローズ
file.close();
}
else{
M5.Lcd.println("File open error hoge.txt");
}
}
overWrite()での file.open() での第4引数のcreateフラグをtrueにしてファイルは新規作成されます。結果は
appendWrite()での file.open() ファイルが存在するかの情報createを作成して第4引数にセットしいます。 seek()でファイルの最後の位置に移動して、書き込みしています。2回実行した結果は
|