请问如何用C#合并多个文本文件并去掉里面的空格和换行?
2015-11-27 来自:youshifan 2 人回应
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格式的文件?

 

 
2015-11-28 来自:昨日最亲的某某

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

2015-11-28 来自:Rosy

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

您的回应

你还未登陆,不能回应!登陆