C Sharp 输入输出
C#输入输出[编辑 | 编辑源代码]
输入输出(Input/Output,简称I/O)是编程中的核心概念之一,它允许程序与用户或其他系统进行交互。在C#中,输入输出通常涉及从控制台读取用户输入、向控制台输出信息、以及处理文件或网络数据流。本文将详细介绍C#中的基本输入输出操作,包括控制台I/O、文件I/O以及一些实际应用案例。
控制台输入输出[编辑 | 编辑源代码]
控制台输入输出是最基础的交互方式,C#通过System.Console类提供了简单的方法来实现。
控制台输出[编辑 | 编辑源代码]
使用Console.WriteLine()或Console.Write()可以向控制台输出信息。两者的区别在于WriteLine会在输出后自动换行,而Write不会。
// 示例:控制台输出
Console.WriteLine("Hello, World!"); // 输出并换行
Console.Write("Enter your name: "); // 输出不换行
输出结果:
Hello, World! Enter your name:
控制台输入[编辑 | 编辑源代码]
使用Console.ReadLine()可以读取用户输入的一行文本,而Console.Read()读取单个字符(返回ASCII码值)。
// 示例:控制台输入
Console.Write("Enter your name: ");
string name = Console.ReadLine(); // 读取一行输入
Console.WriteLine($"Hello, {name}!"); // 输出结果
输入及输出结果:
Enter your name: Alice Hello, Alice!
格式化输出[编辑 | 编辑源代码]
C#支持使用字符串插值或Console.WriteLine()的格式化参数来输出格式化的文本。
// 示例:格式化输出
int age = 25;
Console.WriteLine("Name: {0}, Age: {1}", name, age); // 使用占位符
Console.WriteLine($"Name: {name}, Age: {age}"); // 使用字符串插值
输出结果:
Name: Alice, Age: 25 Name: Alice, Age: 25
文件输入输出[编辑 | 编辑源代码]
C#通过System.IO命名空间提供了文件操作功能,包括读取和写入文件。
写入文件[编辑 | 编辑源代码]
使用File.WriteAllText()或StreamWriter类可以将数据写入文件。
// 示例:写入文件
string filePath = "example.txt";
File.WriteAllText(filePath, "This is a sample text."); // 覆盖写入
// 使用 StreamWriter 追加内容
using (StreamWriter writer = new StreamWriter(filePath, append: true))
{
writer.WriteLine("Appended line.");
}
文件内容:
This is a sample text. Appended line.
读取文件[编辑 | 编辑源代码]
使用File.ReadAllText()或StreamReader类可以读取文件内容。
// 示例:读取文件
string content = File.ReadAllText(filePath);
Console.WriteLine(content);
输出结果:
This is a sample text. Appended line.
实际应用案例[编辑 | 编辑源代码]
案例1:用户注册信息保存[编辑 | 编辑源代码]
以下示例演示如何从控制台获取用户输入并保存到文件。
// 示例:用户注册信息保存
Console.Write("Enter username: ");
string username = Console.ReadLine();
Console.Write("Enter password: ");
string password = Console.ReadLine();
// 保存到文件
string userData = $"Username: {username}, Password: {password}";
File.WriteAllText("userdata.txt", userData);
Console.WriteLine("Registration successful!");
运行结果:
Enter username: Bob Enter password: 12345 Registration successful!
文件内容:
Username: Bob, Password: 12345
案例2:日志记录系统[编辑 | 编辑源代码]
以下示例展示了一个简单的日志记录系统,将程序运行信息写入日志文件。
// 示例:日志记录系统
void LogMessage(string message)
{
string logPath = "app.log";
string timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
using (StreamWriter writer = new StreamWriter(logPath, append: true))
{
writer.WriteLine($"[{timestamp}] {message}");
}
}
LogMessage("Application started");
LogMessage("User logged in");
日志文件内容:
[2023-10-01 14:30:00] Application started [2023-10-01 14:30:05] User logged in
高级主题:异步I/O[编辑 | 编辑源代码]
对于高性能应用,C#提供了异步I/O操作(如File.ReadAllTextAsync()和StreamWriter.WriteLineAsync()),以避免阻塞主线程。
// 示例:异步文件读取
async Task<string> ReadFileAsync(string path)
{
return await File.ReadAllTextAsync(path);
}
// 调用异步方法
string fileContent = await ReadFileAsync("example.txt");
Console.WriteLine(fileContent);
总结[编辑 | 编辑源代码]
C#提供了丰富的输入输出功能,包括:
- 控制台I/O(Console类)
- 文件I/O(System.IO命名空间)
- 异步I/O(提高性能)
通过合理使用这些功能,可以构建交互式应用程序或高效处理文件数据。初学者应优先掌握控制台和文件I/O,而高级用户可进一步学习异步I/O和流处理。