Unity c#在从文本文件读取时识别

本文关键字:读取 识别 文件 文本 Unity | 更新日期: 2023-09-27 18:14:55

我有一个包含几行字符串的文本文件,例如"Commander"answers"44105"。我正在读取这些到一个文件,然后我将在屏幕上显示它们。我需要在某些点创建换行,但是当我在文本文件中使用'n时,程序似乎不识别为新行,而只是在字符串上显示'n时在字符串中显示。

Reader = new StreamReader("Assets/CorrectAnswers.txt", Encoding.Default);
while (!Reader.EndOfStream && turnOff == false)
{
    lineReader = Reader.ReadLine();
    if (problemIndex == questionIndex)
    {
        answer = lineReader;
        turnOff = true;
    }
    questionIndex += 1;
}

其他的都可以正常工作,它只是不识别'n是一个特殊字符。如果有人能帮助我解决这个问题,我将非常感激。

Unity c#在从文本文件读取时识别

好的,在澄清了问题之后,下面是可能对你有用的方法

List<string> lines = new List<string>();
using (StreamReader reader = new StreamReader("Assets/test.txt"))
{
    string lines = reader.ReadToEnd();
    Debug.Log(lines);
    var splitText = lines.Split(new string[] { "|" }, // "''n" in your case 
        System.StringSplitOptions.RemoveEmptyEntries);
    string result = String.Empty;
    foreach (var dataEntry in splitText)
    {
        string dataToParse = dataEntry.Trim();
        result += dataToParse + Environment.NewLine;
    }
    Debug.Log(result);
}

请注意,如果您尝试读取的文件非常大,ReadToEnd可能不适合您,但为了示例起见,它会这样做。因此,这里的逻辑是读取字符串中的文本文件,然后使用字符串的Split方法,该方法通过给定的分隔符数组拆分初始字符串并返回字符串数组,RemoveEmptyEntries意味着在结果数组中不会有空字符串。现在,你有你的条目需要与他们确认你可以做什么,在这种情况下我们Trim他们(这样不会有领导和空格)结束我们附加dataEntry结果与一个新行(请注意,如果你有很多的数据将会更好的性能明智使用StringBuilder附加结果的速度比附加字符串+更多信息:http://support.microsoft.com/kb/306822)

之前编辑

当从文本文件中读取时,流阅读器识别换行符,如果你的文本文件中有一些文本行,你的方法将准确地读取它们,但是如果你有一个带有"'n"的单行文本文件,它将与任何其他两个字符没有区别,例如,如果你的文本文件中包含一行:

"text 'n more text"

你的方法只会得到一行字符串。因此,如果你想,你可以手动解析下面的字符串,通过"'n"分割它,并手动添加新行到你的显示字符串(我可以帮助你,如果这是你想要实现的)。

但是如果我是你,我会用标准的换行符将数据保存在文本文件中,读者可以识别,例如,你可以这样做:

List<string> dataToWrite = new List<string>(){
    "firstLine", "secondLine", "thirdLine"};
using (StreamWriter writer = new StreamWriter("Assets/testWrite.txt"))
{
    foreach (var line in dataToWrite)
    {
        writer.WriteLine(line);
        //writer.Write(line + Environment.NewLine);
        //writer.Write(line + "'r'n");
    }
}

请注意,两个注释行也应该为您工作,有关新行的更多信息,您可以查看以下链接:http://social.msdn.microsoft.com/Forums/en-US/47af2197-26b4-4b9e-90e8-bfa9d5cd05b4/what-is-the-deference-between-r-n-and-rn-?forum=csharplanguage

希望对你有所帮助。