如何在Unity的Android版本中读取文本文件?

时间:2015-05-11 23:38:10

标签: c# android unity3d

当我将游戏构建为.apk文件时,我在尝试阅读存储在Android手机StreamingAsset文件夹中的文本文件时遇到了很多麻烦。

我知道对于Android,你必须使用不同的路径来使用

来访问文件
"jar:file://" + Application.dataPath + "!/assets" + fileName;

并将其存储到WWW类中。我尝试了很多方法,但似乎没有什么对我有用,因为我现在完全迷失了。我的代码如下所示:

void Awake(){
    string filePath = "jar:file://" + Application.dataPath + "!/assets" + fileName;
    // Reads our text file and stores it in the array

    string[][] Level = readFile (filePath);
}

// Reads our level text file and stores the information in a jagged array, then returns that array
string[][] readFile(string file){
    WWW loadFile = new WWW (file);
    while (!loadFile.isDone) {}
    string text = System.IO.File.ReadAllText(loadFile.text);
    string[] lines = Regex.Split(text, "\r\n");
    int rows = lines.Length;

    string[][] levelBase = new string[rows][];
    for (int i = 0; i < lines.Length; i++)  {
        string[] stringsOfLine = Regex.Split(lines[i], " ");
        levelBase[i] = stringsOfLine;
    }
    return levelBase;
}

2 个答案:

答案 0 :(得分:0)

您可以使用streamreader:

    List<string> lines = new List<string>();
    using (StreamReader reader = new StreamReader("file.txt"))
    {
        string line;
        while ((line = reader.ReadLine()) != null)
        {
        lines.Add(line); 
        }
    }

答案 1 :(得分:-1)

string text = System.IO.File.ReadAllText(loadFile.text);行错误:

  • loadFile.text已包含您尝试使用System.IO.File.ReadAllText
  • 打开的文件内容
  • 此外,您无法使用System.IO.File.ReadAllText方法从Android上的StreamingAssets访问文件。