解决方案 »

  1.   

    用 Write 方法,别用WriteLine
      

  2.   

    str被截断了吧,比如字符串里的‘\0’
      

  3.   

    \0在不同地方处理不一样
    这可能算是个bug吧一般来说\0应该作为字符串结尾,之后的字符都应该抛弃不显示的
    但是.net在很多地方,\0作为空字符,后面的字符一样会显示而你输出到文件里,文件里会把\0作为结束符,而不是空字符
      

  4.   

    非也,我发现当有的行数据等于超过12000长度的字符串时候,这一行都不会输出。大家可以试一下,str等于15000个"ABC",然后StreamWriter到文件,会显示空。是不是超过了string的最大限制?
      

  5.   

    我只能说,你很会玩
    为什么要把string定义成那么长??
      

  6.   


    试过了,没有问题。测试代码如下:
                string test = new string('A', 45000);
                using (StreamWriter sw = new StreamWriter("aa.txt"))
                {
                    sw.WriteLine(test);
                }
      

  7.   

    哎 不好意思啊 原来是editplus的问题 同样的文件 用ultareidt 打开就是正常的,  不好意思 不好意思