读取n个文本文件,把文件内容合并到一个文本文件中。主要用了FileStream的ReadByte和WriteByte方法:
class FileCombine { public void CombineFile(String[] infileName,String outfileName) { int b; int n=infileName.Length; FileStream[] fileIn=new FileStream[n]; using (FileStream fileOut = new FileStream(outfileName, FileMode.Create)) { for (int i = 0; i < n; i++) { try { fileIn[i] = new FileStream(infileName[i], FileMode.Open); while ((b = fileIn[i].ReadByte()) != -1) fileOut.WriteByte((byte)b); } catch (System.Exception ex) { Console.WriteLine(ex.Message); } finally { fileIn[i].Close(); } } } } }
调用方法如下:
class TestCombine { public static void Main(String[] args) { FileCombine c=new FileCombine(); String[] file=new String[2]; file[0]="aa.txt"; file[1]="bb.txt"; c.CombineFile(file,"cc.txt"); } }
拣尽寒枝不肯栖,寂寞沙洲。 分类: .Net 标签: 文件读写 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace FileCombine { //读取n个文本文件,把文件内容合并到一个文本文件中。 //主要用了FileStream的ReadByte和WriteByte方法: class FileCombine { public void CombineFile(String[] infileName,String outfileName) { int b; int n=infileName.Length; FileStream[] fileIn=new FileStream[n]; using (FileStream fileOut = new FileStream(outfileName, FileMode.Create)) { for (int i = 0; i < n; i++) { try { fileIn[i] = new FileStream(infileName[i], FileMode.Open); while ((b = fileIn[i].ReadByte()) != -1) fileOut.WriteByte((byte)b); } catch (System.Exception ex) { Console.WriteLine(ex.Message); } finally { fileIn[i].Close(); } } } } } //调用方法如下: class TestCombine { public static void Main(String[] args) { if (args.Length<5) { Console.WriteLine("Usage:"); Console.WriteLine("FileCombine startNum endNum -postfix fromDirectory toFile"); return; } String startNum=args[0]; String endNum=args[1]; String postfix=args[2]; String fromDirectory = args[3]; if (!fromDirectory.EndsWith(@"\")) { fromDirectory += @"\"; } String toFile = args[4]; String[] file = null; int posA = 0; try { posA = Convert.ToInt32(startNum); int posB = Convert.ToInt32(endNum); file = new String[posB - posA + 1]; } catch (System.Exception ex) { Console.WriteLine("input start/endNum error!"); Console.WriteLine(ex.ToString()); return; } FileCombine c=new FileCombine(); for (int i = 0; i < file.Length;i++ ) { file[i] = fromDirectory + posA.ToString() + postfix; posA += 1; } c.CombineFile(file, toFile); } } }