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
相关产品推荐
相关产品推荐

