我有一个ASCII文本文件。我想逐行读取文件,按位置划分,并使用C#将每个值保存到数据库。我怎么能实现这个目标?
答案 0 :(得分:2)
System.IO.File.ReadAllLines("file")
是使用文件的每一行获取数组的最简单方法,但会将整个内容加载到内存中,因此可能不适合大文件。
类似
foreach (var line in File.ReadAllLines("file.txt")) {
var phoneNumber = line.Substring(0, 10); //get first 10 chars
var zipCode = line.Substring(10, 5); //get next 5 chars
... etc
... store to DB.
}
或者在LINQ语法中,你可以做
var data = from line in File.ReadAllLines(filename)
select new {Phone=line.Substring(0,10), Zip=line.Substring(10,5), ...};
foreach(var record in data) {
.. store to DB
}
答案 1 :(得分:1)
使用StreamReader:
using (var input = new StreamReader(File.OpenRead(inputFileName), Encoding.ASCII))
{
string line;
while((line = input.ReadLine()) != null) // or read data other way you want
{
//Do something here...
}
}
答案 2 :(得分:1)
我猜你需要这样的东西?
using (StreamReader reader = new StreamReader("file.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
for(int i = 0; i < line.Length; i++){
//do something with line[i]
}
}
}