Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用StreamReader读取由其他行定义的行_C#_Streamreader - Fatal编程技术网

C# 使用StreamReader读取由其他行定义的行

C# 使用StreamReader读取由其他行定义的行,c#,streamreader,C#,Streamreader,我有一个问题,需要我从文本文件计算综合学生分数。它给我第一行分数的权重,下一行要评估的学生人数,然后下一行是学生的分数。此模式在文件中重复,没有大的分隔 为清楚起见,文本文件和问题如下 我尝试使用以下代码使用streamreader创建新对象: using (StreamReader sr = new StreamReader("DATA10.txt")) { blahblahblah; } DATA10.txt与程序位于同一文件夹中 但我得到了“无法从‘string’转换为‘Syst

我有一个问题,需要我从文本文件计算综合学生分数。它给我第一行分数的权重,下一行要评估的学生人数,然后下一行是学生的分数。此模式在文件中重复,没有大的分隔

为清楚起见,文本文件和问题如下

我尝试使用以下代码使用streamreader创建新对象:

using (StreamReader sr = new StreamReader("DATA10.txt")) {
    blahblahblah;
}
DATA10.txt与程序位于同一文件夹中

但我得到了“无法从‘string’转换为‘System.IO.Stream’”,即使在上的示例中以及其他地方都使用了精确的代码。我做错了什么

最终,我将要做的是从第二行中获取值,并使用streamreader读取该数量的行。然后对下一组数据重复整个过程

我真的不认为这是该问题的重复,这里的答案以更容易理解的方式表达。

您还必须将解决方案资源管理器中“DATA10.txt”的“复制到输出目录”属性设置为“始终复制”

您还必须将解决方案资源管理器中“DATA10.txt”的“复制到输出目录”属性设置为“始终复制”

StreamReader
假定接受流作为其参数,也可以接受流作为参数,并且您还必须指定
文件模式

相反,请尝试以下方法:

public static void Main() 
{
    string path = @"c:\PathToFile\DATA10.txt";

    try 
    {        
        using (FileStream fs = new FileStream(path, FileMode.Open)) 
        {
            using (StreamReader sr = new StreamReader(fs)) 
            {
                 //blahblah    
            }
        }
    } 
    catch (Exception e) 
    {
        Console.WriteLine("The process failed: {0}", e.ToString());
    }
}

StreamReader
假定接受流作为其参数,也可以接受流作为参数,并且您还必须指定
文件模式

相反,请尝试以下方法:

public static void Main() 
{
    string path = @"c:\PathToFile\DATA10.txt";

    try 
    {        
        using (FileStream fs = new FileStream(path, FileMode.Open)) 
        {
            using (StreamReader sr = new StreamReader(fs)) 
            {
                 //blahblah    
            }
        }
    } 
    catch (Exception e) 
    {
        Console.WriteLine("The process failed: {0}", e.ToString());
    }
}


在您的代码片段中,您当前缺少一个
。应该
使用(StreamReader sr=newstreamreader(“DATA10.txt”)
对不起,我已经习惯于为我添加右括号了。我一直在使用你指出的正确路线。抱歉。你把这个文件放在.exe文件所在的位置了吗?它目前只是一个内置的VS,奇怪的是,
System.IO.file.ReadAllText(“DATA10.txt”)
可以工作,但我不确定它是否适合我的需要。你的项目是一个.NET核心项目,一些完整的.NET Framework API在这些项目中不可用。如果您想基于MSDN链接到的示例编写代码,我建议您创建标记为Windows Classic Desktop的项目。在您的代码段中,您当前缺少一个
。应该
使用(StreamReader sr=newstreamreader(“DATA10.txt”)
对不起,我已经习惯于为我添加右括号了。我一直在使用你指出的正确路线。抱歉。你把这个文件放在.exe文件所在的位置了吗?它目前只是一个内置的VS,奇怪的是,
System.IO.file.ReadAllText(“DATA10.txt”)
可以工作,但我不确定它是否适合我的需要。你的项目是一个.NET核心项目,一些完整的.NET Framework API在这些项目中不可用。如果你想把你的代码建立在你链接到MSDN上的示例上,我建议你创建标记为Windows Classic Desktop的项目;“无法从'string'转换为'System.IO.Stream'”你能共享“DATA10.txt”文件吗?哦,对不起,我会上传文件并编辑帖子。我忘了它没有包含在我链接的文件中。。对我来说,上面的代码并没有显示错误。这是一个代码和错误的屏幕:它仍然给我完全相同的错误;“无法从'string'转换为'System.IO.Stream'”你能共享“DATA10.txt”文件吗?哦,对不起,我会上传文件并编辑帖子。我忘了它没有包含在我链接的文件中。。对我来说,上面的代码并没有显示错误。这是一个代码和错误的屏幕:非常感谢。我是C#的新手,大约一个月后我要参加一场比赛。从这里看一切都是上坡路:)非常感谢。我是C#的新手,大约一个月后我要参加一场比赛。从这里看,一切都是向上的:)