首页 新闻 会员 周边

请问如何用C#合并多个文本文件并去掉里面的空格和换行?

0
悬赏园豆:15 [已解决问题] 解决于 2015-11-27 16:29
int n = 2;  //需要合并的文件个数
FileStream fsOut = null;//输出文件 using (fsOut = new FileStream(FullPath, FileMode.Create, FileAccess.Write)) { int b; FileStream[] fsSource = new FileStream[n]; for(int i = 0; i < n; i++) { try { fsSource[i] = new FileStream(_Context.Server.MapPath("") + Paths[i], FileMode.Open); using(StreamReader sr = new StreamReader(fsSource[i],Encoding.UTF8,true)) { while((b = sr.Read()) != -1) { fsOut.WriteByte((byte)b); //文件合并 } } } catch(Exception){}
         finally{
            fsSource[i].close();
          } } }
/*读取文件代码*/

上面是部分代码,已经可以将文件合并了,但是接下来我想把合并后的文件去掉空格和换行,在

/*读取文件代码*/

这一部分也用了一个StreamReader,结果抛出异常说文件已经被另一个进程使用。请问这一部分代码应该怎么操作呢,之前也用了using释放了资源。是不是还有更好的方法在合并文件的时候同时就能去掉换行和空格?

 

while ((b = fsSource[i].ReadByte()) != -1)
{
    fsOut.WriteByte((byte)b);
}

这是之前合并文件的代码,用的是ReadByte方法,但是生成的文件是BOM格式的,后来改用了StreamReader,如果不用StreamReader有没有方法生成无BOM格式的文件?

 

 
逐影的主页 逐影 | 小虾三级 | 园豆:982
提问于:2015-11-27 15:22
< >
分享
最佳答案
1

推荐使用 File.ReadAllText(), 合并只要把ReadAllText的内容加起来就行,替换直接Replace

收获园豆:15
xmj112288 | 初学一级 |园豆:126 | 2015-11-27 16:12
其他回答(1)
-1

用流读出来,然后再正则提换吧。

凝冰 | 园豆:685 (小虾三级) | 2015-11-27 16:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册