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