将文件的一部分移动到另一个文件

时间:2018-02-16 13:12:17

标签: c# .net algorithm

我的文件很少:

  

Lines1

     

Lines2

     

Lines3

     

...

     

LinesN

我有以下代码:

我的代码

while ((line = streamReader.ReadLine()) != null)
{ 
    var str = GetData(line);
    if(str == "Fatal Error")
    {
    }
}    

GetData期间,我可以抛出一些异常。在这种情况下,我想将剩余的行移动到另一个文件。我怎么能这样做?
我应该声明positionCount吗?还是有更聪明的方法?

2 个答案:

答案 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;
    }
}