我的文件包含两行,每行包含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)。有什么想法吗?
答案 0 :(得分:2)
使用时
sr.ReadToEnd()
,您正在阅读输入流的末尾。这意味着,在第一次调用
之后String line1 = sr.ReadToEnd()
您的信息流已经在最后一个位置。将ReadToEnd()
来电替换为ReadLine()
来电。这应该有用。
答案 1 :(得分:0)
在Windows操作系统中,新行由\r\n
表示。所以你不应该用空格(" "
)分割线条。
这意味着您应该使用Split
方法的另一个重载 - Split(char[], StringSplitOptions)
。第一个参数是要拆分的字符,第二个参数是选项。你为什么需要选择?因为如果你用2个连续字符分割,你会得到一个空元素。
所以现在很容易理解这段代码的作用和原因:
line1.Split (new[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries);