C#保存数据到文件,读取文件数据

#region 文件读取与保存

/// <summary>
/// 获取文件中的数据串
/// </summary>
public static string fileToString(String filePath)
{
    string str = "";

    //获取文件内容
    if (System.IO.File.Exists(filePath))
    {
        System.IO.StreamReader file1 = new System.IO.StreamReader(filePath);//读取文件中的数据
        str = file1.ReadToEnd();                                            //读取文件中的全部数据

        file1.Close();
        file1.Dispose();
    }
    return str;
}

/// <summary>
/// 保存数据data到文件处理过程,返回值为保存的文件名
/// </summary>
public static String SaveProcess(String data, String name)
{
    string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\";    //设置当前目录
    if (!System.IO.Directory.Exists(CurDir)) System.IO.Directory.CreateDirectory(CurDir);   //该路径不存在时,在当前文件目录下创建文件夹"导出.."

    //不存在该文件时先创建
    String filePath = CurDir + name + ".txt";
    System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePath, false);     //文件已覆盖方式添加内容

    file1.Write(data);                                                              //保存数据到文件

    file1.Close();                                                                  //关闭文件
    file1.Dispose();                                                                //释放对象

    return filePath;
}

#endregion


保存数据到文件:

        /// <summary>
        /// 保存数据data到文件,返回值为保存的文件名
        /// </summary>
        public string SaveToFile(String data, String name, bool mute)
        {
            String filePath = "";

            //若未命名,则使用系统时间自动命名
            if (name == null || name.Trim().Equals("(重命名)") || name.Trim().Equals(""))
            {
                name = DateTime.Now.ToLongTimeString().Replace(":", ".");   //使用系统时间自动为文件命名
                filePath = SaveToFile(data, name, false);                   //保存数据到文件
                return filePath;                                            //返回保存的文件名
            }

            try
            {
                filePath = SaveProcess(data, name);                         //保存数据并记录文件完整路径

                if (!mute) MessageBox.Show("成功导出数据到:“" + filePath + "”!");
                return filePath;
            }
            catch (Exception)
            {
                MessageBox.Show("保存数据失败");
                return "";
            }
        }

        /// <summary>
        /// 保存数据data到原文件filePathName中
        /// </summary>
        public String SaveToNativeFile(String data, String filePathName, bool mute)
        {
            try
            {
                System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePathName, false); //文件已覆盖方式添加内容
                file1.Write(data);                                                              //保存数据到文件

                file1.Close();                                                                  //关闭文件
                file1.Dispose();                                                                //释放对象

                if (!mute) MessageBox.Show("成功导出数据到:“" + filePathName + "”!");
                return filePathName;
            }
            catch (Exception)
            {
                return SaveToFile(data, "", mute);          //若保存到原文件失败,则创建新文件进行保存
            }
        }

C#使用NAudio库将音频数据保存为WAV文件,你需要先捕获音频数据,然后通过`WaveFileWriter`类将其写入文件。以下是一个基本的步骤: 1. 引入必要的库: ```csharp using NAudio.Wave; using NAudio.WaveFORMats; using System.IO; ``` 2. 创建一个音频文件格式实例,例如16位、立体声、44.1kHz采样率: ```csharp var audioFormat = new WaveFormat(44100, 16, 2); // 44.1kHz, 16位双声道 ``` 3. 打开一个文件流准备写入: ```csharp string outputFile = "output.wav"; using (var writer = new WaveFileWriter(outputFile, audioFormat)) { // 音频数据在这里... } ``` 4. 获取音频数据写入文件。假设你已经有了一个`byte[]`类型的数组存储了音频数据: ```csharp byte[] audioBytes = GetAudioData(); // 这部分取决于你的音频源 writer.Write(audioBytes, 0, audioBytes.Length); ``` 如果音频数据是连续生成的,比如从一个流读取,你可以使用`WaveInBuffer`来接收音频数据。 5. 关闭文件流: ```csharp writer.Close(); ``` 完整的例子: ```csharp byte[] audioData = ... // 获取音频数据 WaveFormat format = ... // 初始化格式 string outputPath = "output.wav"; using (var fileStream = File.Create(outputPath)) using (var waveWriter = new WaveFileWriter(fileStream, format)) { waveWriter.Write(audioData, 0, audioData.Length); } Console.WriteLine("Audio saved to {0}", outputPath); ``` 注意:`GetAudioData()`这部分需要你自己根据实际音频源来编写,可能是从网络、麦克风或其他设备获取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值