Java学习(一)

在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是将数据流中字符进行转码。那么前者比后者速度更快。

原文地址:https://www.cnblogs.com/2Bthebest1/p/8400728.html