Das hat jetzt nichts mit char zu tun, sondern mit der SD library.
Nicht jedes write ( d.h. auch print ) landet tatsächlich sofort auf der Speicherkarte.
Ausserdem muss noch die Dateiverwaltung ( Länge, Sektoren ) aktualisiert werden.
Datei.close() ist nie verkehrt, wenn man danach wieder SD.open oder wie du sogar SD.begin() macht.