Java 为什么';t BufferedReader缓冲输入?
我运行了以下示例:Java 为什么';t BufferedReader缓冲输入?,java,io,Java,Io,我运行了以下示例: public static void main(String[] args) throws IOException{ Reader reader = new BufferedReader(new InputStreamReader(System.in)); int character; do{ character = reader.read(); System.out.printl
public static void main(String[] args) throws IOException{
Reader reader = new BufferedReader(new InputStreamReader(System.in));
int character;
do{
character = reader.read();
System.out.println(character);
} while(character != '\n');
}
事实上,他对自己的行为感到困惑。我认为BufferedReader的默认缓冲区大小足够容纳1个以上的字符
但是,当我进来的时候
a__NEW_LINE__
它使字符与新行一起打印。为什么?我希望缓冲区没有满,因此应该没有输出。
BufferedReader
尽可能缓冲数据。在这种情况下,没有要缓冲的数据。因此,它会立即返回您输入的内容BufferedReader
用于文件(FileInputStream
)等大数据流时非常有用,并且在所有情况下,read方法在幕后返回一个字符,BufferedReader
读取更多数据(取决于缓冲区大小)从相关的输入流
并缓存它以提高性能。重复问题。检查。