白骑士的C#教学基础篇 1.5 输入与输出

8 篇文章 0 订阅

        输入与输出(I/O)是程序与用户交互的桥梁。C#提供了强大的I/O功能,通过控制台和文件操作,可以实现数据的输入、输出和持久化。本节将介绍如何使用控制台进行输入与输出操作,包括基本的控制台读写方法。此外,我们将探讨如何进行文件读写操作,并讨论如何处理运行时异常,以编写更健壮的程序。这些基础知识是构建实际应用程序的关键组成部分。

控制台输入与输出

        控制台输入与输出是C#程序中最基本的I/O操作。通过控制台,用户可以输入数据,程序可以输出信息。

控制台输出

        ‘Console.WriteLine‘ 和 ‘Console.Write‘ 用于向控制台输出信息。方法如下:

public class Program
{
    public static void Main(string[] args)
    {
        // 输出一行信息,并换行
        Console.WriteLine("Hello, World!");

        // 输出信息,但不换行
        Console.Write("Enter your name: ");
    }
}

控制台输入

        ‘Console.ReadLine‘ 用于从控制台读取一行输入,返回值是一个字符串。方法如下:

public class Program
{
    public static void Main(string[] args)
    {
        Console.Write("Enter your name: ");
        string name = Console.ReadLine();
        Console.WriteLine("Hello, " + name + "!");
    }
}

        在这个示例中,程序提示用户输入名字,然后读取输入并输出个性化的问候语。

文件读写操作

        C#提供了丰富的文件操作功能,可以读写文本文件和二进制文件。

读写文本文件

        使用 ‘System.IO.File‘ 类中的静态方法,可以方便地读写文本文件。

写入文本文件

using System;
using System.IO;


public class Program
{
    public static void Main(string[] args)
    {
        string path = "example.txt";
        string content = "Hello, File!";

        // 写入文本文件
        File.WriteAllText(path, content);
        Console.WriteLine("File written successfully.");
    }
}

读取文本文件

using System;
using System.IO;


public class Program
{
    public static void Main(string[] args)
    {
        string path = "example.txt";

        // 读取文本文件
        if (File.Exists(path))
        {
            string content = File.ReadAllText(path);
            Console.WriteLine("File content: " + content);
        }

        else
        {
            Console.WriteLine("File not found.");
        }
    }
}

逐行读取和写入

using System;
using System.IO;


public class Program
{
    public static void Main(string[] args)
    {
        string path = "lines.txt";
        string[] lines = { "First line", "Second line", "Third line" };

        // 写入文件的每一行
        File.WriteAllLines(path, lines);
        Console.WriteLine("File written successfully.");

        // 读取文件的每一行
        if (File.Exists(path))
        {
            string[] readLines = File.ReadAllLines(path);

            foreach (string line in readLines)
            {
                Console.WriteLine(line);
            }
        }

        else
        {
            Console.WriteLine("File not found.");
        }
    }
}

异常处理与错误处理

        在C#中,异常处理通过 ‘try‘、‘catch‘ 和 ‘finally‘ 块来实现,用于捕获和处理运行时错误。

基本异常处理

using System;


public class Program
{
    public static void Main(string[] args)
    {
        try
        {
            Console.Write("Enter a number: ");
            int number = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("You entered: " + number);
        }

        catch (FormatException ex)
        {
            Console.WriteLine("Error: Invalid input. Please enter a valid number.");
        }
    }
}

        在这个示例中,‘try‘ 块中的代码可能抛出 ‘FormatException‘,‘catch‘ 块用于捕获并处理该异常。

多个catch块

        可以使用多个 ‘catch‘ 块来处理不同类型的异常。例如:

using System;
using System.IO;


public class Program
{
    public static void Main(string[] args)
    {
        try
        {
            string path = "nonexistent.txt";
            string content = File.ReadAllText(path);
            Console.WriteLine("File content: " + content);
        }

        catch (FileNotFoundException ex)
        {
            Console.WriteLine("Error: File not found.");
        }

        catch (UnauthorizedAccessException ex)
        {
            Console.WriteLine("Error: Unauthorized access.");
        }

        catch (Exception ex)
        {
            Console.WriteLine("An unexpected error occurred: " + ex.Message);
        }
    }
}

finally块

        ‘finally‘ 块中的代码无论是否发生异常都会执行,常用于释放资源。例如:

using System;
using System.IO;


public class Program
{
    public static void Main(string[] args)
    {
        StreamReader reader = null;

        try
        {
            reader = new StreamReader("example.txt");
            string content = reader.ReadToEnd();
            Console.WriteLine("File content: " + content);
        }

        catch (FileNotFoundException ex)
        {
            Console.WriteLine("Error: File not found.");
        }

        finally
        {
            if (reader != null)
            {
                reader.Close();
                Console.WriteLine("File reader closed.");
            }
        }
    }
}

总结

        掌握控制台输入与输出、文件读写操作以及异常处理是编写有效和可靠C#程序的基础。通过学习这些内容,您可以处理用户输入、存储和读取文件数据,并在遇到错误时进行适当的处理。在接下来的章节中,您将继续探索C#的高级特性和编程技巧,进一步提升您的编程能力。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白骑士所长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值