跳转到内容

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和流处理。