import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) {
// new Main().testScanner();
// 测试结果如下:
// 5
// 12
// testScanner->4765s
// 6
// 20
// testScanner->237s
// 6
// 20
// testScanner->140s
// new Main().testScannerWithBufferedInputStream();
// 测试结果如下:
// 5
// 12
// testScannerWithBufferedInputStream->4879s
// 6
// 20
// testScannerWithBufferedInputStream->486s
// 6
// 20
// testScannerWithBufferedInputStream->139s
// new Main().testBufferedReader();
// 测试结果如下:
// 5
// 12
// testBufferedReader->380s
// 6
// 20
// testBufferedReader->222s
// 6
// 20
// testBufferedReader->109s
// 7
// 21
// testBufferedReader->75s
// new Main().testConsole();
// 测试能不能返回与当前 Java 虚拟机关联的唯一 Console 对象(如果有),如果没有则返回null
// 测试我自己加的进制转换函数
// new Main().testBufferedReaderWithMyBaseString();
// 5
// 12
// testBufferedReaderWithMyBaseString->717s
// 6
// 20
// testBufferedReaderWithMyBaseString->74s
// 7
// 21
// testBufferedReaderWithMyBaseString->73s
}
public void testScanner() {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
long start = System.nanoTime();
System.out.println(Integer.toString(in.nextInt(), 3));
System.out.println("testScanner->" + (System.nanoTime() - start)
/ 1000 + "s");
}
}
public void testScannerWithBufferedInputStream() {
Scanner in = new Scanner(new BufferedInputStream(System.in));
while (in.hasNext()) {
long start = System.nanoTime();
System.out.println(Integer.toString(in.nextInt(), 3));
System.out.println("testScannerWithBufferedInputStream->"
+ (System.nanoTime() - start) / 1000 + "s");
}
}
public void testBufferedReader() {
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
try {
String str = null;
while ((str = buf.readLine()) != null) {
if (!"".equals(str)) {
int num = Integer.parseInt(str);
long start = System.nanoTime();
System.out.println(Integer.toString(num, 3));
System.out.println("testBufferedReader->"
+ (System.nanoTime() - start) / 1000 + "s");
}
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public void testBufferedReaderWithMyBaseString() {
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
try {
String str = null;
while ((str = buf.readLine()) != null) {
if (!"".equals(str)) {
int num = Integer.parseInt(str);
long start = System.nanoTime();
System.out.println(baseString(num, 3));
System.out.println("testBufferedReaderWithMyBaseString->"
+ (System.nanoTime() - start) / 1000 + "s");
}
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
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);
}
}
public void testConsole() {
Console console = System.console();
if (console != null) {
System.out.println(console.readLine());
} else {
System.out.println("不能使用控制台读取");
}
}
}
Java控制台输入几种方式的I/O性能
最新推荐文章于 2022-04-18 13:33:43 发布