使用 FileHelperAsyncEngine 读取、修改和写入
Read, modify and write using FileHelperAsyncEngine
我是 FileHelper 的新手,请多多包涵。
我想读取一个现有的 .csv 文件,其中一列没有数据。
接下来我想从数据库填充该列(附加的代码现在只是放入一个字符串,稍后我将处理数据库调用)
然后,我想输出包含更新的列信息的文件。
static void Main(string[] args)
{
var engine = new FileHelperAsyncEngine<Agents>();
using (engine.BeginReadFile(@"C:\Users\me\Documents\Agents.csv"))
{
int pId = 100;
// The engine is IEnumerable
foreach (Agents agent in engine)
{
agent.PersonID = pId.ToString();
pId++;
}
engine.BeginWriteFile(@"C:\Users\me\Documents\Output.csv");
}
}
这会读取文件,但只输出第一行(在本例中为 header 行)
我希望获得整个更新文件
那是因为您正在使用相同的 FileHelperAsyncEngine
来写入输出。您需要打开另一个 FileHelperAsyncEngine
.
您在 engine.BeginWriteFile
所做的只是关闭读取流并打开写入流。
你的意思可能更像这样:
static void Main(string[] args)
{
var engine = new FileHelperAsyncEngine<Agents>();
var outEngine = new FileHelperAsyncEngine<Agents>();
using (engine.BeginReadFile(@"C:\Users\me\Documents\Agents.csv"))
using (outEngine.BeginWriteFile(@"C:\Users\me\Documents\Output.csv"))
{
int pId = 100;
// The engine is IEnumerable
foreach (var record in engine)
{
record.PersonID = pId.ToString();
pId++;
outEngine.WriteNext(record);
}
}
}
我是 FileHelper 的新手,请多多包涵。 我想读取一个现有的 .csv 文件,其中一列没有数据。 接下来我想从数据库填充该列(附加的代码现在只是放入一个字符串,稍后我将处理数据库调用) 然后,我想输出包含更新的列信息的文件。
static void Main(string[] args)
{
var engine = new FileHelperAsyncEngine<Agents>();
using (engine.BeginReadFile(@"C:\Users\me\Documents\Agents.csv"))
{
int pId = 100;
// The engine is IEnumerable
foreach (Agents agent in engine)
{
agent.PersonID = pId.ToString();
pId++;
}
engine.BeginWriteFile(@"C:\Users\me\Documents\Output.csv");
}
}
这会读取文件,但只输出第一行(在本例中为 header 行) 我希望获得整个更新文件
那是因为您正在使用相同的 FileHelperAsyncEngine
来写入输出。您需要打开另一个 FileHelperAsyncEngine
.
您在 engine.BeginWriteFile
所做的只是关闭读取流并打开写入流。
你的意思可能更像这样:
static void Main(string[] args)
{
var engine = new FileHelperAsyncEngine<Agents>();
var outEngine = new FileHelperAsyncEngine<Agents>();
using (engine.BeginReadFile(@"C:\Users\me\Documents\Agents.csv"))
using (outEngine.BeginWriteFile(@"C:\Users\me\Documents\Output.csv"))
{
int pId = 100;
// The engine is IEnumerable
foreach (var record in engine)
{
record.PersonID = pId.ToString();
pId++;
outEngine.WriteNext(record);
}
}
}