1

我拥有的是一个巨大的 txt 文件,60MB。我需要读取每一行并生成一个文件,根据分隔符拆分。我在读取文件或生成文件时没有问题,我的并发症来自分隔符,它看不到分隔符。如果有人可以就如何阅读该分隔符提出建议,我将不胜感激。

分隔符 = Ç

public void file1()
{
    string betaFilePath = @"C:\dtable.txt";
    StringBuilder sb = new StringBuilder();
    using (FileStream fs = new FileStream(betaFilePath, FileMode.Open))
    using (StreamReader rdr = new StreamReader(fs))
    {
        while (!rdr.EndOfStream)
        {
            string[] betaFileLine = rdr.ReadLine().Split('Ç');
            {
                sb.AppendLine(betaFileLine[0] + "ç" + betaFileLine[1] + betaFileLine[2] + "ç" + betaFileLine[3] + "ç" + betaFileLine[4] + "ç" + betaFileLine[5] + "ç" + betaFileLine[6] + "ç" + betaFileLine[7] + "ç" + betaFileLine[8] + "ç" + betaFileLine[9] + "ç" + betaFileLine[10] + "ç");
            }
        }
    }
    using (FileStream fs = new FileStream(@"C:\testarea\load1.txt", FileMode.Create))
    using (StreamWriter writer = new StreamWriter(fs))
    {
        writer.Write(sb.ToString());
    }
}

小更新:

string[] betaFileLine = rdr.ReadLine().Split('Ç'); 

它不能在字符Ç上分裂。当我调试它时,它是一个不可读的字符。

伙计们,感谢您的帮助,您无畏地为我指明了正确的方向。

改变:

using (StreamReader rdr = new StreamReader(fs))  

至:

using (StreamReader rdr = new StreamReader((fs),Encoding.Default))  

解决它。

4

2 回答 2

5

确保您StreamReader使用与文本文件相同的文本编码。构造函数可以采用第二个参数来指示要使用的编码。

于 2010-03-24T12:16:21.890 回答
2

看起来你正在分裂Ç但添加ç。不是像用小写替换大写分隔符那样简单,反之亦然。

于 2010-03-24T12:17:59.577 回答