C#TextWriter每1024个字符插入换行符

时间:2009-05-25 21:36:15

标签: c# text

我正在使用文本编写器将数据写入文本文件,但如果该行超过1024个字符,则会插入换行符,这对我来说是个问题。关于如何解决这个问题或增加字符限制的任何建议?

textWriter.WriteLine(strOutput);

非常感谢

4 个答案:

答案 0 :(得分:5)

使用Write,而不是WriteLine

答案 1 :(得分:5)

您正在使用TextWriter.WriteLine(string) \r\nstrOutput之后追加textWriter.Write(strOutput); 。正如文档所说:

  

将字符串后跟行终止符写入文本流。

(强调我的。)这与1024个字符无关 - 我的猜测就是你在读它的方式(例如用1024个字符的缓冲区)。

为了避免额外的换行,只需使用

即可
strOutput

编辑:您在评论中说“在写完整行后需要换行” - 但听起来Write并不总是相同的行。

我怀疑实现你想要的最简单方法是将“复制”方面与“换行”方面分开。对要复制的所有文本使用textWriter.WriteLine(); ,然后调用

{{1}}

当你想要换行时。如果这没有帮助,我认为我们需要更多的背景 - 请提供您正在做的代码示例。

答案 2 :(得分:4)

我写了一个示例应用程序,用于编写和读取1025个字符串。大小永远不会改变。虽然如果我用notepad.exe(Windows)打开它,我可以在第二行看到额外的字符。这些似乎是一个记事本限制。这是我的示例代码

    static void Main(string[] args)
    {
        using (TextWriter streamWriter = new StreamWriter("lineLimit.txt")) {
            String s=String.Empty;
            for(int i=0;i<1025;i++){
                s+= i.ToString().Substring(0,1);
            }
            streamWriter.Write(s);
            streamWriter.Close();
        }
        using (TextReader streamReader = new StreamReader("lineLimit.txt"))
        {
            String s = streamReader.ReadToEnd();
            streamReader.Close();
            Console.Out.Write(s.Length);
        }
    }

答案 3 :(得分:0)

如果你需要在输出的末尾添加换行符,只需附加它们。

textWriter.Write(strOutput +"\r\n");