Unity で CSV ファイルを書き出す方法
ログデータをとって CSV 形式で書き出したいことってあると思います。
今回はその方法についてです。
いつものように実行できるプロジェクトファイルはこちらに。
<CSVWrite.cs>
using UnityEngine;
using System.IO;
public class CSVWrite : MonoBehaviour {
public int[] logData; // Logデータの宣言
void Start () {
logData = new int[] {1, 3, 5, 7, 9}; // 仮のLogデータ
LogSave(logData, "logData"); // Logデータをcsv形式で書き出す
}
public void LogSave(int[] x, string fileName)
{
StreamWriter sw; // これがキモらしい
FileInfo fi;
// Aplication.dataPath で プロジェクトファイルがある絶対パスが取り込める
fi = new FileInfo(Application.dataPath + "/Resources/" + fileName + ".csv");
sw = fi.AppendText();
for (int i = 0; i < x.Length; i++)
{
sw.WriteLine ( x[i].ToString() );
}
sw.Flush();
sw.Close();
}
}
解説
どうやら StreamWriter がキモのようです。
とてもアバウトなイメージなのですが,FileInfo でファイル情報を得て AppendText() メソッドでファイルの末尾にデータを足していけるようになるようです。CreateText() メソッドもあるらしく,これを使うと上書きになるんでしょうか。
質問やあれをまとめて欲しいなどの要望があればコメントに
最後まで読んでもらえて嬉しいです。よければフォローもお待ちしています。サポートは記事を書くときのコーヒーになります。