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回実行した結果は
|