将文件拆分为数组时得到错误的数据

本文关键字:错误 数据 文件 拆分 数组 | 更新日期: 2023-09-27 18:19:50

我的文件包含两行,每行包含200个字段,我想将其拆分为数组

using (StreamReader sr = File.OpenText(pathSensorsCalc))
{
     string s = String.Empty;
     while ((s = sr.ReadLine()) == null) { };
     String line1 = sr.ReadToEnd();
     String line2 = sr.ReadToEnd();
     CalcValue[0] = new String[200];
     CalcValue[1] = new String[200];
     CalcValue[0] = line1.Split(' ');
     CalcValue[1] = line2.Split(' ');
}

在上述代码之后,CalcValue[1]为空,并且CalcValue[0]包含第二行(第一行的instad)的数据。有什么想法吗?

将文件拆分为数组时得到错误的数据

使用时

sr.ReadToEnd()

,您正在阅读输入流的末尾。这意味着,在的第一次呼叫之后

String line1 = sr.ReadToEnd()

你的流已经在最后一个位置了。将您的ReadToEnd()呼叫替换为ReadLine()呼叫。这应该行得通。

在Windows操作系统中,新行由'r'n表示。所以不应该用空格(" ")分隔行。

这意味着您应该使用Split方法的另一个重载Split(char[], StringSplitOptions)。第一个参数是要拆分的字符,第二个参数是选项。你为什么需要这些选择?因为如果你用两个连续的字符分割,你会得到一个空元素。

所以现在很容易理解这个代码的作用和原因:

line1.Split (new[] {''r', ''n'}, StringSplitOptions.RemoveEmptyEntries);