BufferedReader与BufferedInputStream的性能测量

时间:2012-03-28 08:07:47

标签: java java.util.scanner bufferedreader bufferedinputstream

最近我将代码修改为

  • 从STDIN输入表格时,我从Scanner移至BufferedInputStream
  • 我还阅读了BufferedReader来自任何InputStreamReader的输入。此InputStreamReader可与System.in一起用于STDIN输入。
  • BufferedInputStreamread()方法,需要根据目标进一步解析。

在我的情况下,首先我需要取一个整数(比方说n)作为来自STDIN的输入,之后for loop将n个字符串作为输入。这些字符串最多有1,00,000个字符。

问题是:ScannerBufferedInputStreamBufferedReader中的哪一个对我的目标有更好的表现?

2 个答案:

答案 0 :(得分:2)

扫描仪旨在简化用户在运行时接受输入参数。这是java等效的scanf()/ getc()/ cin。 'Reader'用于读取字符数据,'Stream'用于流式数据。扫描仪最适合您的用途。因为它很容易编码和使用。

答案 1 :(得分:2)

我会在你的情况下使用BufferedReader。它会比Scanner快得多,因为你的字符串有很多字符。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//To get an integer
int N = Integer.parseInt(br.readLine());

//To get a string.
String line = br.readLine()