C# 实现若干文本文件合并为一个文件(激光点文本文件合并)

项目背景:

今天开发遇到一个需求,需要将若干文本文件合并到一个文本文件中,供程序调用。这个主要用在什么场景呢?激光点云数据通常是按区域以文本方式存储的,而我想将不同区域的激光点拿来一起建模。当然方法有两种,一是逐个文本读取,二是将他们合并成一个文本后在读取!当然本质都是文件了!因为程序之前激光点文件读取都是读一个文件,所以为了方便我还是选择合并方式了,这样就不用改源代码了。由于要操作的激光点数据一般数据量都很大,所以要选择FileStream方式了!针对FileStreamStreamReader的区别请看我的博文:

C#如何读取文件内容?(FileStream与StreamReader区别)_韦_恩的博客-CSDN博客_c# 读取文件内容在C#中读取文件内容,有两个类可以做到,一个是StreamReader类,一个是FileStream类。那么究竟如何实现?以及他们两个有什么区别?在今后应用中应该使用哪一个?别着急,我一个个来说!目录1.开门见山谈区别2.FileStream3.StreamReader4.注意事项4.1.及时释放4.2.异步操作4.3汉字乱码5.总结:6.参考文献:1.开门见山谈区别FileStream类提供了在文件中读写字节的方法,但经常使用StreamReader或 ..https://blog.csdn.net/qq_42539194/article/details/119960169?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166986031016800186525890%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166986031016800186525890&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-119960169-null-null.nonecase&utm_term=file&spm=1018.2226.3001.4450废话不多说直接上代码:

文本文件合并主方法:

 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();
                    }

                }
            }
        }

调用方法:

 private void button1_Click(object sender, EventArgs e)
        {
            List<string> file = new List<string>();
            file.Add( @"C:\Users\hp\Desktop\xyz合并\1.xyz");
            file.Add(@"C:\Users\hp\Desktop\xyz合并\2.xyz");
            file.Add(@"C:\Users\hp\Desktop\xyz合并\3.xyz");
            CombineFile(file.ToArray(), @"C:\Users\hp\Desktop\xyz合并\" + "cc.xyz");
        }

合并结果 :

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦_恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值