C#StreamReader多次读取数据

时间:2019-05-13 18:44:35

标签: c# .net streamreader

我有此代码:

  using (StreamReader csvreader = new StreamReader(fuFiles.FileContent))
            {
                while (!csvreader.EndOfStream)
                {
                  //reading data
                }
            }

我在两个不同的功能中使用它。 在第一个函数中,EndOfStream的值为false,可以正确读取数据。 在第二个函数中,相同类型的代码表示EndOfStream为true,而我无法读取数据。我正在独立创建streamreader对象。

编辑

我要再加上一条解释,当我评论第一种方法时,便能够在第二种方法中读取数据。

我在做错什么吗?

2 个答案:

答案 0 :(得分:3)

只有两个带有一个参数的StreamReader构造函数。由于“ FileContent”可能不是字符串,因此它必须是某种Stream。第一次从中读取它是在末尾。因此,您必须将其重置为开头(如果允许),在读取之前进行复制或创建一个新副本。

答案 1 :(得分:1)

基于您提供的代码中的变量名,看起来您正在将文件的内容传递给StreamReader构造函数。但是,constructor采用要读取的文件路径-而不是文件内容。

如果您要这样做,则可以使用StringReader类使用流来读取字符串。