Leer y escribir archivo en streamingAssetsPath

Así es como leo mi archivo de texto en Android.

#if UNITY_ANDROID string full_path = string.Format("{0}/{1}",Application.streamingAssetsPath, path_with_extention_under_streaming_assets_folder); // Android only use WWW to read file WWW reader = new WWW(full_path); while (!reader.isDone){} json = reader.text; // PK Debug 2017.12.11 Debug.Log(json); #endif 

y así es como leo mi archivo de texto desde la pc.

 #if UNITY_STANDALONE string full_path = string.Format("{0}/{1}", Application.streamingAssetsPath, path_with_extention_under_streaming_assets_folder); StreamReader reader = new StreamReader(full_path); json = reader.ReadToEnd().Trim(); reader.Close(); #endif 

Ahora mi problema es que no sé cómo escribir el archivo en el móvil porque lo hago así en la versión independiente

 #if UNITY_STANDALONE StreamWriter writer = new StreamWriter(path, false); writer.WriteLine(json); writer.Close(); #endif 

Ayuda a alguien

PREGUNTA ACTUALIZADA

Esta Este es el archivo json que está en mi carpeta de streamingasset que necesito obtener

Ahora mi problema es que no sé cómo escribir el archivo en el móvil porque lo hago así en la versión independiente

No puedes guardar en esta ubicación . Application.streamingAssetsPath es de solo lectura. No importa si funciona en el Editor o no. Es de solo lectura y no se puede usar para cargar datos .

enter image description here

Lectura de datos de StreamingAssets :

 IEnumerator loadStreamingAsset(string fileName) { string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, fileName); string result; if (filePath.Contains("://") || filePath.Contains(":///")) { WWW www = new WWW(filePath); yield return www; result = www.text; } else { result = System.IO.File.ReadAllText(filePath); } Debug.Log("Loaded file: " + result); } 

Uso :

Carguemos su archivo “datacenter.json” de su captura de pantalla:

 void Start() { StartCoroutine(loadStreamingAsset("datacenter.json")); } 


Guardar datos :

La ruta para guardar datos que funcionan en todas las plataformas es Application.persistentDataPath . Asegúrese de crear una carpeta dentro de esa ruta antes de guardar datos en ella. El StreamReader en su pregunta se puede utilizar para leer o escribir en esta ruta.

Guardar en la ruta Application.persistentDataPath :

Use File.WriteAllBytes

Lectura de la ruta Application.persistentDataPath

Use File.ReadAllBytes .

Consulte esta publicación para obtener un ejemplo completo de cómo guardar datos en Unity.

Esta es la forma en que lo hago sin la clase WWW (funciona para Android y iOS), espero que sea útil

 public void WriteDataToFile(string jsonString) { if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } if (!File.Exists(filePath)) { File.Create(filePath).Close(); File.WriteAllText(filePath, jsonString); } else { File.WriteAllText(filePath, jsonString); } }