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

C#TextWriter每隔1024个字符插入换行符,c#,text,C#,Text,我正在使用textwriter将数据写入文本文件,但是如果行超过1024个字符,就会插入换行符,这对我来说是个问题。有没有关于如何解决这个问题或增加字符限制的建议 textWriter.WriteLine(strOutput); 非常感谢使用Write,而不是WriteLine您使用的是在输出之后附加\r\n。正如文件所说: 将后跟行终止符的字符串写入文本流 (强调我的。)但这与1024个字符无关——我猜这就是你阅读它的方式(例如,使用1024个字符的缓冲区) 为了避免额外的换行,只需使用 t

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

textWriter.WriteLine(strOutput);

非常感谢

使用Write,而不是WriteLine

您使用的是在
输出之后附加
\r\n
。正如文件所说:

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

(强调我的。)但这与1024个字符无关——我猜这就是你阅读它的方式(例如,使用1024个字符的缓冲区)

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

textWriter.Write(strOutput);
编辑:你在评论中说“整行已经写完”之后需要换行,但听起来好像
strOutput
并不总是同一行

我想实现您想要的最简单的方法是将“复制”端与“换行”端分开。对所有要复制的文本使用
Write
,然后只需调用

textWriter.WriteLine();

当你想换行的时候。如果这没有帮助,我想我们需要更多的上下文-请提供一个代码示例,确切说明您正在做什么。

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

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

我编写了一个示例应用程序,可以写入和读取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);
        }
    }
static void Main(字符串[]args)
{
使用(TextWriter streamWriter=新streamWriter(“lineLimit.txt”)){
String s=String.Empty;

对于(int i=0;iYeah),这似乎正是问题所在。TextWriter/StreamWriter类中肯定没有任何内在的东西会施加1024(或任何)限制。感谢Jon,我需要在使用.Write(strOutput)写入整行之后插入换行符“最好的方法是什么?谢谢你的帮助!谢谢你的帮助。你能告诉我Strootput来自哪里吗?它来自缓冲区吗?如果是的话,缓冲区是怎么填充的,它有多大?你用记事本查看文本文件吗?是的,这很可能是——换句话说,问题不存在于e第一名:)这是一个记事本的限制,记事本2完美地展示了它,谢谢你的时间。非常感谢。