Unity学习笔记--File.ReadAllLines和File.ReadAllText的使用以及注意事项(一定要看到最后!!!)

前言

最近在做文件存储以及读取的时候,需要用到C#给我们提供的类:File
具体使用方法可以看官方文档:C# File 类
这篇文章只会说File.ReadAllLinesFile.ReadAllText的使用以及注意事项

Tips:(一定要看到最后!!!)

一、File.ReadAllLines

重载操作
ReadAllLines(String)打开一个文本文件,读取文件的所有行,然后关闭该文件。
ReadAllLines(String, Encoding)打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。
public static string[] ReadAllLines (string path);
参数

String
要打开以进行读取的文件。

返回

String[]
包含文件所有行的字符串数组。

例子

现在假设我的文件路径是‪ C:\Users\Admin\Desktop\log.txt
内容如下
在这里插入图片描述
文本格式如下

1
2
3
4
5

现在我们利用 File.ReadAllLines 读取文件内容,并且打印出来

string file_path = "C:/Users/Admin/Desktop/log.txt";
string[] contents = File.ReadAllLines(file_path);
foreach (string content in contents)
{
    Debug.Log(content);
}

在这里插入图片描述

二、File.ReadAllText

重载操作
ReadAllText(String)打开一个文本文件,读取文件的所有行,然后关闭该文件。
ReadAllText(String, Encoding)打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。
public static string ReadAllText (string path);
参数

String
要打开以进行读取的文件。

返回

String
包含文件中所有文本的字符串。

例子

文件路径和内容同上

现在我们利用 File.ReadAllLines 读取文件内容,并且打印出来

string file_path = "C:/Users/Admin/Desktop/log.txt";
string content = File.ReadAllText(file_path);
Debug.Log(content);

在这里插入图片描述

注意事项

如果在Windows下,我们按下Enter键,也就是我们常说的回车键,其实内部会生成两个字符,一个是 \r(回车符) ,一个是 \n(换行符),如果是计算机专业的可能会熟悉点。

可能出现的问题

我们在编程的时候,可能会使用File.ReadAllText来读取文件,这个时候如果文件有很多换行,那么这个时候比较常见的做法如下

string file_path = "C:/Users/Admin/Desktop/log.txt";
string content = File.ReadAllText(file_path);
string[] contents = content.Split("\n");

foreach(string s in contents)
{
    Debug.Log(s);
}

但是这样会有问题,我们来测试下输出什么
在这里插入图片描述
看起来挺正常,但是我们继续细化

foreach (string s in contents)
{
	Debug.Log("------------");
	Debug.Log("字符串:" + s);
	Debug.Log("字符串长度:" + s.Length);
}

这里我们多打印了一下字符串的长度
在这里插入图片描述
我们可以发现,字符串为1,2,3,4,5的,长度却是2
我们获得的contents是经过Split处理的,理所应当被分割出来的字符串数组应该是1,2,3,4,5。但为什么对应字符串长度是2,而不是1呢?
其实,如果认真读了上面的注意事项,我们就不能发现,我们现在是在Windows下测试的,我们敲下的Enter键,会生成两个字符,一个是 \r(回车符) ,一个是 \n(换行符)

windows下换行符是\r\n
\r回车,\n换行
用二进制方式时是\r\n,用文本方式时是\n
当你在记事本或word编辑时,按下enter,该软件默认的方式是插入回车\r,再插入换行\n

所以文本里面显示的是:

1
2
3
4
5

但是存储在计算机中(二进制形式)如下

1\r\n2\r\n3\r\n4\r\n5\r\n

我们可以打印下文件内容

byte[] bs = File.ReadAllBytes(file_path);
Debug.Log(bs.Length);
foreach (byte ch in bs)
{
	Debug.Log(ch);
}

在这里插入图片描述
由于内部是由ASCLL码存储的,所以我们查表,得知13是回车符,也就是\r,10是换行符,也就是\n
在这里插入图片描述
为了验证我们的想法,打个断点进去看看
在这里插入图片描述

总结

  1. 尽量使用File.ReadAllLines处理需要换行处理的文件
  2. 需要注意Windows下,敲下Enter键是会生成两个字符:\r和\n
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Unity-debugging-2018.x.zip是一个Unity版本相关的调试工具包,其中包含了诸如埋点工具和调试插件等功能丰富的工具。这些工具可以帮助Unity开发者在开发自己的游戏时快速、准确地定位和修复代码中的问题,提高了游戏的开发效率和质量。 这个工具包中最值得注意的一点是它的兼容性。它可以与Unity 2018中的许多不同版本一起使用,这意味着无论开发者使用哪个具体版本的Unity,都可以使用这个工具包进行调试。这为开发过程中遇到的问题提供了更为广泛和全面的支持,从而更好地满足了不同开发者的需求和要求。 另外,这个工具包还有一个很不错的特色,就是它的易用性。它提供了直观和易于操作的界面,即使是那些对调试工具很不熟悉的开发者也可以使用它。开发者可以通过它直接在Unity编辑器中观察代码执行过程中的变化,非常方便。 总的来说,Unity-debugging-2018.x.zip是一个非常实用和友好的Unity调试工具包,可以帮助Unity开发者更快速、高效地开发自己的游戏。 ### 回答2: unity-debugging-2018.x.zip是Unity引擎中用于调试的工具包。在程序开发的过程中,会出现各种各样的问题,而调试是解决这些问题的重要手段之一。Unity-debugging-2018.x.zip提供了一系列工具和功能,帮助程序员定位和解决问题。 Unity-debugging-2018.x.zip中包含了各种调试工具,例如调试器、内存分析器、性能分析器等等。这些工具可以帮助开发者监控程序运行的状态,包括内存使用、CPU使用、函数运行时间等等。通过这些信息,开发者可以找到程序中可能存在的性能问题,并对其进行优化。 同时,Unity-debugging-2018.x.zip还提供了调试器,帮助开发者调试程序。开发者可以在调试器中设置断点,一步一步地执行程序,查看变量和函数调用的情况。通过调试器,开发者可以快速定位程序中的错误,减少排错的时间。 总之,Unity-debugging-2018.x.zip是Unity开发中不可或缺的工具包。它可以帮助开发者定位和解决问题,提高程序的稳定性和性能,为游戏开发提供强有力的支持。 ### 回答3: unity-debugging-2018.x.zip是一个用于Unity引擎调试的文件。Unity是一款流行的游戏开发引擎,但在游戏开发过程中难免会遇到各种问题,例如程序崩溃、游戏运行异常等等。此时就需要进行调试。Unity-debugging-2018.x.zip文件中包含了一系列调试工具,可用于分析和诊断Unity游戏/应用程序的问题。其中包括了Unity自带的Profiler(性能分析器)、Debug.Log、断点调试、MonoDevelop等工具,这些工具可以帮助开发者查找问题所在,快速调试程序。一个好的调试工具不仅能帮助开发者快速找到问题,还能提高开发效率,使开发工作更加顺利。总之,Unity-debugging-2018.x.zip文件是Unity调试工具的集合,为开发者解决问题提供了极大的帮助,也是一个值得推广和使用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就一枚小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值