用StreamWriter写入文件,每一行进行耗时的数据解析和字符串拼接,会有些行无法写入文件

问题描述

当用StreamWriter写入文件的时候,发现如果在写入的时候进行耗时的其他操作,写出的文件中会有很多行是空行,但是在console.writeln却是可以全部输出的,这是为什么啊?classProgram{staticvoidMain(){using(StreamWriterwriter=newStreamWriter("test.txt")){//这里进行一大批字符串拼接,比如拼接50次stringstr=str1+str2+st3+str4...+str50;writer.WriteLine(str);console.writeLn(str);}}}

解决方案

解决方案二:
用Write方法,别用WriteLine
解决方案三:
str被截断了吧,比如字符串里的‘’
解决方案四:
在不同地方处理不一样这可能算是个bug吧一般来说应该作为字符串结尾,之后的字符都应该抛弃不显示的但是.net在很多地方,作为空字符,后面的字符一样会显示而你输出到文件里,文件里会把作为结束符,而不是空字符
解决方案五:
非也,我发现当有的行数据等于超过12000长度的字符串时候,这一行都不会输出。大家可以试一下,str等于15000个"ABC",然后StreamWriter到文件,会显示空。是不是超过了string的最大限制?
解决方案六:
引用4楼mysam的回复:

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

我只能说,你很会玩为什么要把string定义成那么长??
解决方案七:
引用4楼mysam的回复:

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

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

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

时间: 2024-09-17 03:56:58

用StreamWriter写入文件,每一行进行耗时的数据解析和字符串拼接,会有些行无法写入文件的相关文章

c-如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配

问题描述 如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配 如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配,,,怎么写代码啊,,求大神们指点,,万分感谢!!!! 解决方案 正则表达式应该可以看做是字符串匹配吧

网络编程-求一段从网站读取实时日线数据的vb代码,本人要把实时日线数据不断写进txt文件最后一行

问题描述 求一段从网站读取实时日线数据的vb代码,本人要把实时日线数据不断写进txt文件最后一行 谢谢各位大神!本人业余爱好,但是现在对网络编程不熟,求帮助! 日线数据直接读到一个字符串里面就好了,用空格或tab隔开都行 解决方案 这不是S吗?直接写到数据库的表里就好了

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

 1.ofstream,open,close 写入文件 #include<iostream> #include<fstream>   using namespace std;   //通过ofstream的方式实现写入文件 open,close void main() {     ofstream fout;  //ofstream输出文件     fout.open("E:\\1.txt");//打开文件     fout << "1

r语言-求大神指点,怎样用R语言对同一文件夹里的很多Excel表,EXCEL表又有很多Sheet实现写入操作

问题描述 求大神指点,怎样用R语言对同一文件夹里的很多Excel表,EXCEL表又有很多Sheet实现写入操作 手都断了,试了好多函数,loadWorkbook,openxlsx同时用write.xlsx,addWorksheet--试了一下午,都被这问题搞死了,呜呜~这是出现过的一个错误 解决方案 http://blog.sina.com.cn/s/blog_6e9c33de0101a6ps.html 解决方案二: 可以先读取出来,操作完数据在进行写入啊

h2数据库文件写入oracle的blob字段,再从blob字段读取出来,重新生成h2.db文件

问题描述 h2数据库h2.db文件写入oracle的blob字段,再从blob字段读取出来,重新生成h2.db文件之后,用jdbc访问这个重新生成h2.db文件,会报表不存在的错误,无法操作h2. 请问大概是什么原因? 解决方案 你可以按以下依次排查:1.h2.db数据库文件本身是否完整?2.存入oracle是以二进制的数据存进去的,存入取出之间对数据文件是否有完整.像你这样可以完整报表不存在的错误,我觉得跟数据库存储是没有关系的.

读取文件最后一行的两种方式

    '''读取文件最后一行''' import os # 小文件:批量读取 def get_last_line(filename='mark.csv'): fullfilename = os.path.join(os.path.dirname(__file__), filename) with open(fullfilename, 'r', encoding='utf-8') as f: lines = f.readlines() # 批量 lastline = lines[-1] retu

如何转储数据文件和Buffer Cache中的数据块

这篇文章是为了补充<Oracle性能优化与诊断案例精选>一书中的案例而写的,但是想想,也许还可以扩展一下,对于刚接触 Oracle 数据库的朋友们,试着回答一下以下几个问题,看看自己能否找到正确的答案: 当我们 insert 一条记录,不提交,这个数据在内存还是磁盘? 当我们 insert 一条记录,提交,这个数据在内存还是磁盘? 当我们 insert 一条记录,不提交,检查点,这个数据在内存还是磁盘? 当我们 insert 一条记录,提交,检查点,这个数据在内存还是磁盘? 先看看我的测试:

Windows命令行下修改文件访问控制权限

随着Windows XP/Server 2003的流行,越来越多的用户开始选择NTFS文件系统,NTFS的好处自然是大大增强了系统的安全性,在"安全"标签页下,我们可以在这里为不同级别的用户设置相应的访问控制权限,包括完全控制.修改.读取和运行.列出文件夹目录.读取.写入.特别的权限等,你只需要在"允许"和"拒绝"下简单勾选即可,点击"高级"按钮还可以设置更多的特殊权限,这里就不多说了. 其实,除了在图形用户界面下对文件或文件

c#中如何删除csv文件中除表头以外的数据

问题描述 c#中如何删除csv文件中除表头以外的数据 我想实现这样的动作,就是在每次向csv文件写数据的时候,都先把csv文件内的内容清空,但是要保留csv的表头.不知道有没有比较方便的做法? 解决方案 先用 StreamReader.ReadLine() 把第一行读到变量中.然后用覆盖的方式写第一行.写后续的数据. 又:数据多少列都确定了,表头不也确定的,直接写就行了. 解决方案二: 你可以简单的就是删除文件从第二行开始的内容 解决方案三: 按你的意思,你是搞1个csv然后丢1个. 那你在写第