关于分隔符:如何使用c#从.text文件中读取数据?

How can i read data from .txt file using c#?

本问题已经有最佳答案,请猛点这里访问。

我想从特定路径读取数据,但程序只读取第一行。我的程序从用户那里获取数据并保存在int.txt文件中,然后我想在分隔符之间显示所有内容。输入

1
1@aaa@bbbb@2@c@f@3@r@t

输出

1
2
3
4
5
6
7
8
9
10
11
Id:1
Name:aaa
Address:bbbb

Id:2
Name:c
Address:f

Id:3
Name:r
Address:t

这是我的代码:主要的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FileStream fs = new FileStream(@"E:
ew 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;
}

1
2
3
4
5
6
public void Display_data()
{
     Console.WriteLine(ID);
     Console.WriteLine(Name);
     Console.WriteLine(Address);    
}


你需要移除

1
break;

在条件和移动时编辑

1
2
sd.Close();
fs.Close();

退出while循环。
所以你的while循环应该是这样的

1
2
3
4
5
6
7
8
9
10
11
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();


读取行,使用"@"拆分,然后读取3个行项目并打印出行项目。

1
2
3
4
5
6
7
8
9
10
11
12
using(StreamReader oReader = new StreamReader(@"E:
ewfolder\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]);
    }
}