C#打开或者创建一个文件,然后向其末尾写入数据的方法

本文介绍了一种使用C#进行文件操作的方法,通过FileStream和StreamWriter类实现对指定文件的打开或创建,并能在文件末尾追加写入新的内容。此方法适用于日志记录等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文: C#打开或者创建一个文件,然后向其末尾写入数据的方法

            FileStream fs = new FileStream(@"d:\timetick.txt", FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter m_streamWriter = new StreamWriter(fs);
            m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
            m_streamWriter.WriteLine(string.Format("Service Start at {0}",DateTime.Now.ToString()));
            m_streamWriter.WriteLine(strTemp);
            m_streamWriter.Flush();
            m_streamWriter.Close();
posted on 2019-03-23 10:47 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10582862.html

<think>好的,我现在需要回答用户关于在C#中如何向文件末尾追加数据的问题。用户提到了FileStream类,并且参考了引用中的示例代码。首先,我需要确认在C#中实现文件追加的正确方法。 我记得在C#中,FileStream类有一个构造函数参数,可以指定文件打开方式。比如,使用FileMode.Append应该可以实现追加数据文件末尾。同时,还需要考虑写入数据时的编码方式,比如使用StreamWriter来方便地写入文本。 接下来,我需要确保代码示例的正确性。正确的步骤应该是打开文件时使用FileMode.Append,这样文件指针会自动定位到末尾。然后使用StreamWriter写入数据,并且要记得关闭流或者使用using语句来自动释放资源。 用户的问题可能还涉及到如何避免覆盖原有数据,所以强调FileMode.Append的作用很重要。另外,可能需要提到如何处理异常,比如文件不存在的情况,是否需要创建文件。FileMode.Append在文件不存在时会自动创建,所以不需要额外处理。 然后,根据用户提供的引用[1],需要确认示例代码是否符合最佳实践。比如,是否应该使用using语句来确保文件流的正确关闭,以及是否需要指定访问模式为FileAccess.Write,不过FileMode.Append通常已经隐含了写入权限。 可能还需要区分文本文件和二进制文件的追加方式,但用户的问题看起来是关于文本追加,所以使用StreamWriter是合适的。同时,可以提供一个简单的示例,展示如何追加一行文本,并解释每个参数的作用。 最后,生成相关问题时,需要考虑用户可能进一步想知道的内容,比如如何追加二进制数据、如何处理大文件追加、或者如何检查文件是否存在后再追加等。这些问题可以帮助用户更深入地理解文件操作的不同方面。</think>在C#中实现文件末尾追加数据,可通过`FileStream`配合`FileMode.Append`模式实现。以下为三种实现方式及说明: ### 方法一:基础流写入 ```csharp using (FileStream fs = new FileStream("test.txt", FileMode.Append, FileAccess.Write)) using (StreamWriter sw = new StreamWriter(fs)) { sw.WriteLine("这是追加的内容"); } ``` 特点:显式控制文件访问模式,适合需要精细控制流参数的场景 ### 方法二:简化路径写法 ```csharp using (StreamWriter sw = File.AppendText("test.txt")) { sw.WriteLine(DateTime.Now.ToString() + " 日志记录"); } ``` 特点:使用`File.AppendText`封装方法,自动处理编码(默认UTF-8),适合快速开发 ### 方法三:二进制追加 ```csharp byte[] data = Encoding.UTF8.GetBytes("\n二进制追加"); using (FileStream fs = new FileStream("data.bin", FileMode.Append)) { fs.Write(data, 0, data.Length); } ``` 特点:支持非文本数据的追加,如图片、加密数据等 **注意要点**: 1. 文件不存在时,`FileMode.Append`会自动创建文件[^1] 2. 默认使用UTF-8编码,如需其他编码可指定:`new StreamWriter(fs, Encoding.GetEncoding("gb2312"))` 3. 大文件追加建议异步写入:`StreamWriter`配合`async/await`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值