我想从特定路径读取数据,但程序只读取第一行。
我的程序从用户获取数据并将其保存为.txt文件,然后我想显示分隔符之间的所有内容。
输入
1@aaa@bbbb@2@c@f@3@r@t
输出
Id:1
Name:aaa
Address:bbbb
Id:2
Name:c
Address:f
Id:3
Name:r
Address:t
这是我的代码:
主
FileStream fs = new FileStream(@"E:\New folder\a ", FileMode.Open);
StreamReader sd = new StreamReader(fs);
string s;
while (true)
{
s = sd.ReadLine();
field = s.Split(std.delimiter);
std.ID = field[0];
std.Name = field[1];
std.Address = field[2];
std.Display_data();
sd.Close();
fs.Close();
break;
}
类
public void Display_data()
{
Console.WriteLine(ID);
Console.WriteLine(Name);
Console.WriteLine(Address);
}
答案 0 :(得分:1)
您需要删除
break;
条件编辑并移动
sd.Close();
fs.Close();
时间周期。
所以你的while循环应该是这样的
while (!sd.EndOfStream)
{
s = sd.ReadLine();
field = s.Split(std.delimiter);
std.ID = field[0];
std.Name = field[1];
std.Address = field[2];
std.Display_data();
}
sd.Close();
fs.Close();
答案 1 :(得分:0)
读取行,使用' @'拆分然后阅读3个订单项并打印出该品牌。
using(StreamReader oReader = new StreamReader(@"E:\Newfolder\a\test.txt"))
{
string [] sLineItems = oReader.ReadLine().Split('@');
for(int i = 0;i < sLineItems.Length; i = i+3)
{
Console.WriteLine("Id:{0}",sLineItems[i]);
Console.WriteLine("Name:{0}",sLineItems[i+1]);
Console.WriteLine("Address:{0}",sLineItems[i+2]);
}
}