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にしてファイルは新規作成されます。結果は
a
abcd

appendWrite()での
file.open()
ファイルが存在するかの情報createを作成して第4引数にセットしいます。
seek()でファイルの最後の位置に移動して、書き込みしています。2回実行した結果は
xyz
xyz