在Eclipse中使用快捷键:
main+ Alt+/ 得到publi static void main(String[] args){}
sysout+Alt+/ 得到System.out.println();
编写hello world。主要是输入输出字符串。
package helloWorld; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello world!");// 输出流 System.err.println("请输入一个错误信息:");// 错误流 // 创建文本扫描器,扫描输入的一行文本,遇到' '终止 Scanner scanner = new Scanner(System.in); //Scanner的用法 /** * 利用scanner读取字符 */ String line = scanner.nextLine(); System.out.print(line); int i=scanner.nextInt(); System.out.println(i); double d=scanner.nextDouble(); System.out.println(d); /** * 利用System.in.read()读取字符 */ int ci = 0;//整型需要初始化 char c=' ';//字符需要初始化 try { ci = System.in.read();// 将ASC码转换成int型字符串 c=(char)System.in.read(); } catch (IOException e) { e.printStackTrace(); } System.out.println(ci); System.out.println(c); /** * 利用bufferdReader读取数据 */ String s1 = null; String s2=null; BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); try { //读入一行字符串 s1 = read.readLine(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } System.out.println(s1); System.out.println(Integer.parseInt(s2));
Scanner与BufferedReader的区别:
1 /** 2 * 3 * 4 * BufferedReader与Scanner的区别 5 */ 6 Scanner scanner1 =new Scanner(System.in); 7 int s1=scanner1.nextInt(); 8 String s2=scanner1.nextLine(); 9 System.out.println(s1+s2); 10 11 BufferedReader read1=new BufferedReader(new InputStreamReader(System.in)); 12 String s3=null; 13 String s4=null; 14 try 15 { 16 s3=read1.readLine(); 17 s4=read1.readLine(); 18 }catch(IOException e){ 19 e.printStackTrace(); 20 } 21 System.out.println(s3+s4);
在Scanner中next.XXX有七种类型,nextInt、nextFloat、nextDouble 、nextByte、nextShort、nextLong、nextBooean,在其后面接nextLine时会造成nextLine读取换行符‘ ’,即读取字符无效。
只有再接一个nextLine才能解除这种局面。这与C语言中的scanf的用法一致。但BufferedReader不存在此问题。
除了上述问题,Scanner与BufferedReader还有如下不同:
1.BufferedReader可以用于多线程的输入,而Scanner不能。
2.BufferedReader是从缓存中读取数据,缓存大小为8K,而Scanner的缓存只有1K。
3.BufferedReader是直接从缓存中读取数据流中的字符,而Scanner是将数据流中字符进行转码。那么前者比后者速度更快。