Pan*_*aha 17 java user-input input bufferedinputstream
我正在编写一个代码来使用BufferedInputStream来读取用户的输入,但是当BufferedInputStream读取字节时,我的程序只读取第一个字节并打印它.有没有什么方法可以读取/存储/打印整个输入(这将是整数)除了只读取第一个字节?
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
[shadow @ localhost codechef] $ java EnormousInputTest 5452 5
icz*_*cza 32
A BufferedInputStream用于读取字节.阅读一行涉及阅读字符.
您需要一种方法将输入字节转换为由字符集定义的字符.因此,您应该使用a 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);
Run Code Online (Sandbox Code Playgroud)