在Java中通过System.in
进行标准输入(stdin)读取数据时,可以通过以下方法对性能进行优化:
- 使用
BufferedReader
包装System.in
,可以减少IO操作次数,提高读取效率。示例代码如下:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = null; while ((line = reader.readLine()) != null) { // 处理输入数据 }
- 使用
Scanner
类进行输入操作,它提供了方便的方法来读取不同类型的数据,例如nextInt()
,nextDouble()
,nextLine()
等。示例代码如下:
Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int num = scanner.nextInt(); // 处理输入数据 }
- 如果需要读取大量数据,可以考虑使用
BufferedInputStream
对标准输入进行缓冲,减少IO操作次数。示例代码如下:
BufferedInputStream bis = new BufferedInputStream(System.in); byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = bis.read(buffer)) != -1) { // 处理输入数据 }
通过以上优化方法可以提高stdin读取数据的性能,减少IO操作次数,提高程序效率。