前提・実現したいこと
UnityC#でどうしても詰まってしまったので質問させていただきます。
Editor上ではできているけどAndroid実機に入れるとうまくいかないのです。
csvファイルを読み込んだり、書き込んだりしてデータを保存したいのですが、
特定の場所でエラーが発生しているらしくそれ以降の処理がカットされてしまいます
wwwを使ってそのファイルの中身を受け取ることは出来たのですが、
Androidではファイルを指定して書き換えたりすることはできないのでしょうか?
発生している問題・エラーメッセージ
StreamWriterを使おうとするとダメみたい? CSVファイルの読み込みは出来るけど書き換えたりできない?
該当のソースコード
C#
1StreamWriter sw; 2 FileInfo fl; 3 fl = new FileInfo(Application.streamingAssetsPath + "/CSVS/EncryptionDataS.csv"); 4//ここまでは正常 5 sw = fl.AppendText(); 6//多分この上の行で止まってしまいます 7 sw.WriteLine("追記",1234567894"); 8 sw.Flush(); 9 sw.Close();
試したこと
var fsA = new FileStream(Application.streamingAssetsPath+"/CSVS/EncryptionDataS.csv", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var fswA = new FileStream(Application.streamingAssetsPath+"/CSVS/EncryptionDataS.csv", FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
using (StreamWriter streamWriter = new StreamWriter(fswA))
//多分この上の行が問題?
{
var render = new StreamReader(fsA);
while (render.Peek() > 0) { var lineData = render.ReadLine(); var address = lineData.Split(','); } streamWriter.WriteLine(""); streamWriter.Flush(); streamWriter.Close(); render.Close(); }
上のコードでは読み込みと書き換えをやろうとしてダメみたいで
下のコードは読み込むだけなのですが、こちらは問題なく読み込んでくれているのでファイルのパスは合っているとは思います
WWWの意味もよくわからずこれで出来そうだったので使っていますorz
それと
var fsA = new FileStream(www.text, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
var render = new StreamReader(fsA);
こんな書き方で書き込めないかやったのですがダメみたいで...
IEnumerator test()
{
string path = Application.streamingAssetsPath+"/CSVS/EncryptionDataS.csv";
WWW www = new WWW(path);
yield return www;
var render = new StringReader(www.text); while (render.Peek() > 0) { var lineData = render.ReadLine(); var address = lineData.Split(','); } render.Close(); }
補足情報(FW/ツールのバージョンなど)
Unity2018.2.13f1
Android実機:QuaTab02
この実機が激安の25FPS以上出してくれない端末なのが問題なのでしょうか?
もともとAndroidではできない仕方をしているのか見当がつきません
よろしくお願いしますm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/03 05:54
2019/03/03 06:42
2019/03/03 09:34
2019/03/07 04:00