所以我必须编写一个程序,从Values.txt文件中读取值(数字)并将它们存储到整数数组中(开头我不知道文件中的值的数量,所以我不知道数组的长度) 。 首先,我遍历文件并使用计数器变量来获取要存储到数组中的值的数量。然后是问题,我不知道如何从文件的开头开始捕获值并将它们存储到数组中。 当我运行它时,我得到0 0 0 0 0。
如果不是
myReader.DiscardBufferedData();
myReader.BaseStream.Seek(0, SeekOrigin.Begin);
myReader.BaseStream.Position = 0;
我使用myReader.Close()
然后使用myReader = new StreamReader("Values.txt)
,结果是正确的,有人可以解释为什么会发生这种情况以及如何修复此代码:)
string lineOfText = "";
int counter = 0;
int[] intArray;
StreamReader myReader = new StreamReader("Values.txt");
while(lineOfText != null)
{
lineOfText = myReader.ReadLine();
if(lineOfText != null)
{
counter++;
}
}
intArray = new int[counter];
myReader.DiscardBufferedData();
myReader.BaseStream.Seek(0, SeekOrigin.Begin);
myReader.BaseStream.Position = 0;
counter = 0;
while(lineOfText != null)
{
lineOfText = myReader.ReadLine();
if (lineOfText != null)
{
intArray[counter] = int.Parse(lineOfText);
}
counter++;
}
myReader.Close();
for (int j = 0; j < intArray.Length; j++)
{
Console.WriteLine(intArray[j]);
}
答案 0 :(得分:2)
这解释了如果您希望在一次通过Return StreamReader to Beginning中执行此操作来重置流。
您需要使用阵列吗?列表对于您的操作是完美的,您可以稍后将该列表推送到数组中或直接从列表中工作。代码示例如下:
List<string> ints = new List<string>();
using (StreamReader sr = new StreamReader("example.txt"))
{
ints.Add(sr.ReadLine());
}