读取
全部读取
1 | byte[] fileBytes = File.ReadAllBytes("recorded_audio.wav"); |
流式按字节读取
常见的音频是16位为一个基本单元,所以我们可以16位一批一批的读取。
1 | string infilename = "recorded_audio.wav"; |
流式按行读取
1 | public double[] ReadFile(string fname) |
字节数组
子数组
1 | WaveIn cap = new WaveIn(); |
转换
1 | // 定义两个 byte 类型的值 |
文本写入
在 C# 中,有多种方式可以实现文本写入操作,下面将详细介绍几种常见的方法。
使用 File.WriteAllText
方法
这种方法适合一次性将整个文本内容写入到文件中,它会覆盖文件中已有的内容。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21using System.IO;
class Program
{
static void Main()
{
string filePath = "test.txt";
string text = "这是要写入文件的文本内容。";
try
{
// 将文本写入文件
File.WriteAllText(filePath, text);
System.Console.WriteLine("文本写入成功!");
}
catch (IOException e)
{
System.Console.WriteLine($"写入文件时发生错误: {e.Message}");
}
}
}
代码解释:
File.WriteAllText
是System.IO
命名空间下File
类的静态方法。- 它接受两个参数,第一个参数是文件的路径,第二个参数是要写入文件的文本内容。
- 若文件不存在,该方法会创建新文件;若文件已存在,则会覆盖原有内容。
使用 File.AppendAllText
方法
如果只是想简单地追加文本到文件末尾,可使用 File.AppendAllText
方法。
1 | using System.IO; |
代码解释:
File.AppendAllText
是File
类的静态方法,用于将指定的文本追加到文件末尾。- 若文件不存在,会创建新文件。
使用 StreamWriter
类
StreamWriter
类提供了更灵活的文本写入方式,可以逐行写入或追加内容到文件。
覆盖写入
1 | using System.IO; |
追加写入
1 | using System.IO; |
代码解释:
StreamWriter
类用于将字符写入流,可指定文件路径创建实例。- 使用
using
语句可以确保在代码块结束时,StreamWriter
实例的资源被正确释放。 - 构造函数的第二个参数
true
表示以追加模式打开文件,不指定或为false
则是覆盖模式。 Write
方法用于写入文本,WriteLine
方法会在写入文本后添加换行符。
注意事项
- 在进行文件操作时,可能会抛出
IOException
异常,因此最好进行异常处理。 - 要确保程序有足够的权限在指定路径下创建或修改文件。
概念
byte/short
byte 是 1 个字节(即 8 位)。
short 是 2 个字节(即 16 位)。
C# 中的 short
实际上就是对 System.Int16
的别名映射。
int 是 4 个字节(即 32 位)。
long 是 8 个字节(即 64 位)。