gpt4 book ai didi

java - 如何读取 BufferedInputStream 中的一行?

转载 作者:太空狗 更新时间:2023-10-29 22:43:31 25 4
gpt4 key购买 nike

我正在编写代码以使用 BufferedInputStream 读取用户的输入,但是当 BufferedInputStream 读取字节时,我的程序只读取第一个字节并打印它。除了只读取第一个字节之外,有什么方法可以读取/存储/打印整个输入(这将是 Integer )?

import java.util.*;
import java.io.*;
class EnormousInputTest{

public static void main(String[] args)throws IOException {
BufferedInputStream bf = new BufferedInputStream(System.in) ;
try{
char c = (char)bf.read();

System.out.println(c);
}
finally{
bf.close();
}
}
}

输出:

[shadow@localhost codechef]$ java EnormousInputTest54525

最佳答案

A BufferedInputStream用于读取字节。阅读一行涉及阅读字符

您需要一种方法将输入字节转换为由字符集 定义的字符。因此,您应该使用一个 Reader 将字节转换为字符,然后您可以从中读取字符。 BufferedReader还有一个readLine()读取整行的方法,使用:

BufferedInputStream bf = new BufferedInputStream(System.in)

BufferedReader r = new BufferedReader(
new InputStreamReader(bf, StandardCharsets.UTF_8));

String line = r.readLine();
System.out.println(line);

关于java - 如何读取 BufferedInputStream 中的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com