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";
|
||
}
|
||
}
|