using System; using System.IO; using System.Text.Json; using System.Text.Json.Serialization; namespace Lesson09 { class Program { static void Main(string[] args) { string basePath = Directory.GetCurrentDirectory(); string testFile = Path.Combine(basePath, "test.txt"); string configFile = Path.Combine(basePath, "config.json"); string logFile = Path.Combine(basePath, "app.log"); Console.WriteLine("=== 文件读写演示 ===\n"); // ========== 写入文本文件 ========== Console.WriteLine("--- 写入文本文件 ---"); string content = "第一行:无言势字幕\n第二行:VRChat 语音识别工具"; File.WriteAllText(testFile, content); Console.WriteLine($"已写入: {testFile}"); // ========== 读取文本文件 ========== Console.WriteLine("\n--- 读取文本文件 ---"); string readContent = File.ReadAllText(testFile); Console.WriteLine("文件内容:"); Console.WriteLine(readContent); // ========== 按行读写 ========== Console.WriteLine("\n--- 按行读取 ---"); string[] lines = File.ReadAllLines(testFile); for (int i = 0; i < lines.Length; i++) { Console.WriteLine($"行 {i + 1}: {lines[i]}"); } // ========== JSON 配置 ========== Console.WriteLine("\n--- JSON 配置读写 ---"); // 创建设置对象 AppSettings settings = new AppSettings { Sensitivity = 75, AutoConnect = true, VadEnabled = true, Language = "zh-CN" }; // 序列化为 JSON string json = JsonSerializer.Serialize(settings, new JsonSerializerOptions { WriteIndented = true // 格式化输出 }); File.WriteAllText(configFile, json); Console.WriteLine("已保存配置: config.json"); Console.WriteLine(json); // 反序列化 string loadedJson = File.ReadAllText(configFile); AppSettings loadedSettings = JsonSerializer.Deserialize(loadedJson); Console.WriteLine("\n读取的配置:"); Console.WriteLine($" 灵敏度: {loadedSettings.Sensitivity}"); Console.WriteLine($" 自动连接: {loadedSettings.AutoConnect}"); Console.WriteLine($" VAD: {loadedSettings.VadEnabled}"); Console.WriteLine($" 语言: {loadedSettings.Language}"); // ========== 追加日志 ========== Console.WriteLine("\n--- 追加日志 ---"); string timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string logEntry = $"[{timestamp}] 应用启动\n"; File.AppendAllText(logFile, logEntry); Console.WriteLine($"已追加日志: {logFile}"); // ========== 文件操作 ========== Console.WriteLine("\n--- 文件操作 ---"); Console.WriteLine($"文件是否存在: {File.Exists(testFile)}"); Console.WriteLine($"文件大小: {new FileInfo(testFile).Length} 字节"); Console.WriteLine($"完整路径: {Path.GetFullPath(testFile)}"); Console.WriteLine($"扩展名: {Path.GetExtension(testFile)}"); // ========== 清理 ========== Console.WriteLine("\n--- 清理测试文件 ---"); if (File.Exists(testFile)) File.Delete(testFile); if (File.Exists(configFile)) File.Delete(configFile); if (File.Exists(logFile)) File.Delete(logFile); Console.WriteLine("已删除测试文件"); Console.WriteLine("\n=== 演示完成 ==="); Console.ReadLine(); } } // ========== 配置类 ========== class AppSettings { public int Sensitivity { get; set; } = 70; public bool AutoConnect { get; set; } = true; public bool VadEnabled { get; set; } = true; public string Language { get; set; } = "zh-CN"; } }