测试三种控制台读取方法的速度快慢
来源:互联网 发布:橡胶木 知乎 编辑:程序博客网 时间:2024/05/16 08:51
由以下的测试可以看出,使用BufferedReader和BufferedInputStream速度接近,可能是因为数据量比较小,但是它们的速度均比Scanner要快很多。
import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;public class FindFastest {public static void main(String[] args) {FindFastest ff = new FindFastest();// 测试数据// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。ff.testScanner();// 测试结果如下:// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用Scanner读取耗时:252微秒// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用Scanner读取耗时:230微秒// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用Scanner读取耗时:271微秒// ff.testScannerWithBufferedInputStream();// 测试结果如下:// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用带BufferedInputStream的Scanner读取耗时:75微秒// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用带BufferedInputStream的Scanner读取耗时:7微秒// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用带BufferedInputStream的Scanner读取耗时:5微秒// ff.testBufferedReader();// 测试结果如下:// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用BufferedReader读取耗时:95微秒// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用BufferedReader读取耗时:3微秒// 苹果公司计划于9月9日召开新闻发布会,届时苹果将发布新一代iPhone。而苹果iPhone发布会一般于9月初至9月中旬召开,这次传闻的召开时间与近几年基本吻合。// 使用BufferedReader读取耗时:3微秒}public void testScanner() {Scanner in = new Scanner(System.in);while (in.hasNext()) {long start = System.nanoTime();in.next();// 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。// System.out.println(Integer.toString(in.nextInt(), 10));long end = System.nanoTime();System.out.println("使用Scanner读取耗时:" + (end - start) / 1000 + "微秒");}}public void testScannerWithBufferedInputStream() {Scanner in = new Scanner(new BufferedInputStream(System.in));while (in.hasNext()) {in.next();long start = System.nanoTime();System.out.println("使用带BufferedInputStream的Scanner读取耗时:" + (System.nanoTime() - start) / 1000 + "微秒");}}public void testBufferedReader() {BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));try {String str = null;while ((str = buf.readLine()) != null) {if (!"".equals(str)) {long start = System.nanoTime();System.out.println("使用BufferedReader读取耗时:" + (System.nanoTime() - start) / 1000 + "微秒");}}} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}/** * * @param num * @param base * @return 该函数是将十进制数字转化成指定的任意进制的数 */public static String baseString(int num, int base) {String str = "", digit = "0123456789abcdef";if (num == 0) {return "";} else {str = baseString(num / base, base);return str + digit.charAt(num % base);}}}
0 0
- 测试三种控制台读取方法的速度快慢
- java中从控制台读取输入的三种方法
- 三种方法ASP读取大量数据的速度比较
- WebService 传输数据几种方法快慢的比较
- [story]Java写文件3种方法的快慢
- IO读取速度测试
- usb读取速度测试
- 总结分析网站访问速度快慢的原因
- 测试网页打开速度的18种专业方法
- 测试jdbc几种操作mysql数据方法的速度
- 测试网页打开速度的18种专业方法
- 三种读取图片的方法
- 三种读取xml的方法!见人见智
- 文件读取的三种方法
- 读取excel文件的三种方法
- php读取数组的三种方法
- jena读取本体的三种方法
- Java读取注册表的三种方法
- voj1451 环形dp 记忆化搜索
- hdu-1230-火星A+B
- Javascript的Dojo包导入有错误Xpath is invalid in dojo library
- hdu 2091 空心三角形
- POJ--2449--Remmarguts' Date【dijkstra_heap+A*】第K短路
- 测试三种控制台读取方法的速度快慢
- 快速排序
- C++空类,空虚基类处理及类大小
- ubuntu修改成mac主题
- Linux命令行源码查找方式
- 杭电acm2091 hdu-acm-2091空心三角形解题报告
- sgu 131解题记录
- wince获得mac地址(需要连接网络或路由器)
- 颜色直方图特征代码