104 lines
4.1 KiB
C#
104 lines
4.1 KiB
C#
|
|
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<AppSettings>(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";
|
|||
|
|
}
|
|||
|
|
}
|