1. 引言
在许多Java应用程序中,我们需要逐字符地读取输入数据,这通常是一个常见的任务,尤其是在处理来自流源的大量数据时。
在本教程中,我们将探讨Java中逐字符读取数据的不同方法。
2. 使用BufferedReader进行控制台输入
我们可以利用BufferedReader从控制台逐字符地执行读取。请注意,如果我们要交互式地读取字符,这种方法很有帮助。
让我们来看一个例子:
@Test
public void givenInputFromConsole_whenUsingBufferedStream_thenReadCharByChar() throws IOException {
ByteArrayInputStream inputStream = new ByteArrayInputStream("TestInput".getBytes());
System.setIn(inputStream);
try (BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in))) {
char[] result = new char[9];
int index = 0;
int c;
while ((c = buffer.read()) != -1) {
result[index++] = (char) c;
}
assertArrayEquals("TestInput".toCharArray(), result);
}
}
大约 2 分钟