我的文件很少:
Lines1
Lines2
Lines3
...
LinesN
我有以下代码:
我的代码
while ((line = streamReader.ReadLine()) != null)
{
var str = GetData(line);
if(str == "Fatal Error")
{
}
}
在GetData
期间,我可以抛出一些异常。在这种情况下,我想将剩余的行移动到另一个文件。我怎么能这样做?
我应该声明positionCount吗?还是有更聪明的方法?
答案 0 :(得分:2)
您可以继续检测错误的位置,即:
while ((line = streamReader.ReadLine()) != null)
{
var str = GetData(line);
if(str == "Fatal Error")
{
WriteRemainingLines(line, streamReader);
break;
}
}
line
参数将包含包含错误的行:
public void WriteRemainingLines(string line, streamReader reader)
{
using (var targetfile = ...)
{
do
{
targetfile.WriteLine(line);
}
while ((line = reader.ReadLine()) != null);
}
}
答案 1 :(得分:0)
在这里你迭代你的线,一旦遇到一些"致命错误"你开始将后续行复制到另一个文件中:
var thereWasAnError = false;
while ((line = streamReader.ReadLine()) != null)
{
var str = GetData(line);
if(thereWasAnError)
{
// write this line to the other file
}
if(str == "Fatal Error")
{
thereWasAnError= true;
}
}