码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA键盘输入:Scanner和BufferedReader

时间:2014-08-07 07:15:09      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   使用   io   文件   for   

public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //sc.useDelimiter("\n");
        while(sc.hasNext())
        {
            System.out.println("content "+sc.next());
        }
    }
}

System表示当前java程序的运行平台,无法创建System类的对象,只能调用System类的类方法和类属性.

System类提供了访问系统属性和环境变量的方法

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;

public class SystemTest {
    public static void main(String[] args) throws IOException {
        Map<String,String>env=System.getenv();
        for(String key:env.keySet())
        {
            System.out.println(key+">>"+env.get(key));
        }
        System.out.println("===============");
//        打印指定环境变量
        System.out.println(env.get("JAVA_HOME"));
        Properties props=System.getProperties();
//              系统属性被保存在指定的txt中
        props.store(new FileOutputStream("props.txt"), "System properties");
    }

}

 

Scanner类用来接收键盘输入

sc.useDelimiter("\n");表示采用回车键作为分隔符.如果没有这段代码,输入

learn java

运行结果是:
content learn
content java

如果有这行代码,忽略空格,只把回车做分隔符,运行结果为:

content learn java

useDelimiter(String pattern)该方法参数应该为正则表达式

除了把回车作为分隔符之外,还可以使用hasNextLine()方法来返回下一行,可以将上面的程序改写为

public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //sc.useDelimiter("\n");
        while(sc.hasNext())
        {
            System.out.println("content "+sc.next());
        }
    }
}

  Scanner还可以被用来读取txt文件

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest2 {
    public static void main(String[] args) throws FileNotFoundException {
//        使用Scanner来读取文件输入
//        如果a文件不存在:
//        Exception in thread "main" 
//        java.io.FileNotFoundException: a.txt (系统找不到指定的文件。)
        Scanner sc=new Scanner(new File("../a.txt"));
        System.out.println("contents of a.txt");
        while(sc.hasNextLine())
        {
            System.out.println(sc.nextLine());
        }
    }

}

 BufferedReader是在1.5之前用来读取键盘输入的,它需要建立在字符流的基础之上,所以需要用InputStreamReader来包装System.in

BufferedReader bf=new BufferedReader(new InputStreamReader(System.in);
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BufferedReaderTest {
    public static void main(String[] args) throws IOException {
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        String sbr="";
        while((sbr= bf.readLine())!=null)
        {
            System.out.println(sbr);
        }
    }

}

除了String类型,Scanner还能读取int.下面的代码将输入的数字逐行相加,并且打印.BufferedReader只能读取String

public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
//        sc.useDelimiter("\n");
        int i=0;
        while(sc.hasNext())
        {
//            System.out.println("content "+sc.next());
            i+=sc.nextInt();
            System.out.println(i);
        }
    }
}

 

JAVA键盘输入:Scanner和BufferedReader,布布扣,bubuko.com

JAVA键盘输入:Scanner和BufferedReader

标签:style   blog   color   java   使用   io   文件   for   

原文地址:http://www.cnblogs.com/twobrothers/p/3896174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!