2012-01-25 19 views
5

我一直在使用Scanner对象接受输入,并希望了解BufferedReader如何工作。我试过了,它似乎只适用于字符串。有人可以告诉我如何将它用于整数和双精度吗?以及如何在同一行上请求两个字符串输入?谢谢。使用BufferedReader在java中输入

回答

7

思考的BufferedReaderScanner为不同层次的抽象,而不是可互换的零件说,“做同样的事情。”我认为这是你挂断的根本问题。

BufferedReader从某种意义上说比“更简单”而不是ScannerBufferedReader只是读取String s。

ScannerBufferedReader强得多。它具有API,可以轻松提取各种类型的对象。

我可以想象Scanner正在使用BufferedReader作为基础构建块。而用ScannerBufferedReader就好像用大锤杀死一只蚂蚁。

+3

+1'用大锤杀死蚂蚁'。这对蚂蚁或锤子来说真的没什么好玩的。 – Perception

2

是的,bufferedreader只接受字符串。您需要使用Integer.parseInt(value)或Double.parseDouble(value)将它们转换为int或double。

+0

好吧,你如何要求在同一行上输入两个字符串? –

+0

与扫描仪你可以使用scan.next()函数,但与bufferedreader?谢谢 –

+0

根据输入的“\ n”区分线条。 – tazo

1

BufferedReader基本上将输入流作为参数。

您必须使用内置方法将字符串解析为ints and doubles

像:

BufferedReader br = new BufferedReader(new FileReader("input1.txt")) 
String line = br.readLine(); 
//more logic here 

int number = Integer.parseInt(brstring); 
double number = Double.parseDouble(brstring); 
+0

你能告诉我如何要求在同一行上输入两个字符串吗?感谢 –