SDMMCファイルクラス(Fileクラス)
SDカードやMMCカードをファイルクラスで操作できるライブラリです。 使用する場合は、ライブラリとしてインポートして、#include <sdmmc.h>を記述してください。 また、ファイルのオブジェクトはSDMMC.openか、file.openNextFileで返されるものを使用してください。サンプルを参照してください。
close
概要 | ファイルを閉じる。ファイルオブジェクトを使い終わるときに、必ず呼び出してください。 |
---|---|
文法 | file.close |
パラメータ | なし |
戻り値 | なし |
available
概要 | 読み出せるデータがあるかどうか調べます。 |
---|---|
文法 | bool file.available() |
パラメータ | なし |
戻り値 | データがあればtrue、なければfalseを返します。 |
read
概要 | ファイルから1バイト読み込みます。 |
---|---|
文法 | int file.read() |
パラメータ | なし |
戻り値 | データがあればデータを返します。ファイルの終わりに達していたら-1を返します。 |
write
概要 | ファイルにデータや文字列を書き込みます。 |
---|---|
文法 | file.write(data)file.write(*buf, len) |
パラメータ | data: データや文字列(char*)buf: 書き込みデータ(unsigned char*)が格納されたバッファlen: 書き込みたい長さ |
戻り値 | なし |
flush
概要 | 未書き込みのデータをファイルに書き込みます。 |
---|---|
文法 | file.flush() |
パラメータ | なし |
戻り値 | なし |
position
概要 | ファイルからの読み出し位置を取得します。 |
---|---|
文法 | unsigned long file.position() |
パラメータ | なし |
戻り値 | ファイルの先頭から数えた読み出し位置(バイト単位)。 |
seek
概要 | ファイルからの読み出し位置を移動します。 |
---|---|
文法 | bool file.seek(unsigned long pos) |
パラメータ | pos: ファイルの先頭から数えた読み出し位置(バイト単位) |
戻り値 | 成功したらtrue、失敗したらfalseを返す。 |
概要 | ファイルに数値や文字列を書き込みます。 |
---|---|
文法 | file.print(data)file.print(data, BASE) |
パラメータ | data: 文字列や数値BASE: 基数(BYTE、BIN、DEC、HEX、OCT) |
戻り値 | なし |
println
概要 | ファイルに数値や文字列を改行付きで書き込みます。 |
---|---|
文法 | file.println(data)file.println(data, BASE) |
パラメータ | data: 文字列や数値BASE: 基数(BYTE、BIN、DEC、HEX、OCT) |
戻り値 | なし |
size
概要 | ファイルのサイズを調べます。 |
---|---|
文法 | unsigned longfile.size() |
パラメータ | なし |
戻り値 | ファイルのサイズ(バイト単位) |
name
概要 | 開いているファイルの名前を調べます。 |
---|---|
文法 | char* file.name() |
パラメータ | なし |
戻り値 | ファイル名を表す文字列 |
isDirectory
概要 | 開いているファイルオブジェクトが、ファイルかディレクトリか調べます。 |
---|---|
文法 | bool file.isDirectory() |
パラメータ | なし |
戻り値 | ディレクトリならtrue、ファイルならfalseを返します。 |
openNextFile
概要 | ディレクトリオブジェクトの場合、次のファイルオブジェクトを返します。 |
---|---|
文法 | File file.openNextFile() |
パラメータ | なし |
戻り値 | 次に該当するファイルオブジェクト。該当がなければfalseとして評価されるファイルオブジェクトを返します。 |
rewindDirectory
概要 | ディレクトリの検索を最初に戻します。 |
---|---|
文法 | void file.rewindDirectory() |
パラメータ | なし |
戻り値 | なし |
サンプルプログラム
SAKURAボードの裏面にあるマイクロSDにアクセスして、書き込み、読み込み、サイズ調査、削除など、一連の動作を試すサンプルです。
#include <rxduino.h> #include <sdmmc.h> SDMMC mySD; void setup(){ pinMode(PIN_LED0, OUTPUT); Serial.begin(38400, SCI_AUTO); //Press any key to start communication mySD.begin(); } void loop(){ digitalWrite(PIN_LED0, 1); File myFile = mySD.open("sample.txt", FILE_WRITE); if(myFile == false){ Serial.println("Fail to access MMC"); digitalWrite(PIN_LED0, 0); while(1){ } } //Write Serial.println("Success to access MMC"); myFile.println("Hello, my MMC"); myFile.close(); //Read myFile = mySD.open("sample.txt", FILE_READ); while(myFile.available()){ Serial.print((char)myFile.read()); delay(50); } //Size Serial.print(myFile.size()); Serial.println(); myFile.close(); digitalWrite(PIN_LED0, 0); Serial.println("Remove the file? y/n"); while(!Serial.available()); char c = Serial.read(); //Remove if(c == 'y'){ mySD.remove("sample.txt"); Serial.println("sample.txt has been removed"); } delay(400); }