You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java的InputStreamReader与BufferedReader在C#中的等效实现及代码转换

Java转C#代码示例

控制台输入部分的转换

Java中的InputStreamReader和BufferedReader对应C#里的Console.In结合StreamReader,或者可以直接简化使用Console.ReadLine()。以下是两种转换方式:

简化写法(推荐)

private static void RunPrompt()
{
    while (true)
    {
        Console.Write(" > ");
        string line = Console.ReadLine();
        if (line == null) break;
        Run(line);
    }
}

贴近Java原写法

private static void RunPrompt()
{
    using (StreamReader reader = new StreamReader(Console.OpenStandardInput()))
    {
        while (true)
        {
            Console.Write(" > ");
            string line = reader.ReadLine();
            if (line == null) break;
            Run(line);
        }
    }
}

核心逻辑部分的转换

run方法的转换只需适配C#语法细节,比如命名规范和泛型写法:

private static void Run(string source)
{
    Scanner scanner = new Scanner(source);
    List<Token> tokens = scanner.ScanTokens();

    // 暂时打印所有Token
    foreach (Token token in tokens)
    {
        Console.WriteLine(token);
    }
}

关键说明

  • C#中Console.ReadLine()已封装缓冲区处理,无需手动实现类似BufferedReader的逻辑。
  • 使用using语句可自动释放StreamReader资源,对应Java的try-with-resources语法。
  • 遵循C#命名约定,方法名采用帕斯卡命名法(首字母大写),因此runPrompt改为RunPrompt,run改为Run。

内容的提问来源于stack exchange,提问作者Bercan Turkmen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:15:59