java中的Scanner

  在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去,怎么办呢?

一.java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数

  Scanner是一个基于正则表达式的文本扫描器,可以从文件,输入流,字符串中解析出基本类型和字符串类型的值。Scanner类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据。(摘自《疯狂java讲义》李刚)
  代码示例:

package com.bijian.study;

import java.util.Scanner;

/**
 * Scanner的简单示例
 * */
public class TestScanner {

    public static void main(String[] args) {

        // 创建Scanner对象
        // System.in表示标准化输出,也就是键盘输出
        Scanner sc = new Scanner(System.in);
        // 利用hasNextXXX()判断是否还有下一输入项
        while (sc.hasNext()) {
            // 利用nextXXX()方法输出内容
            String str = sc.next();
            System.out.println(str);
        }
    }
}

  结果就是:你在控制台输入什么内容,点击回车后,下面就会输出同样的内容,如果你输入的时候点击了回车或者Tab键,那么输出的内容就会在那个地方换行。

 

二.Scanner除了可以获取键盘输入外,也可以获取文件中的内容,将文件中的内容一行一行的输入出来

  TestScannerRead.java

package com.bijian.study;

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

/**
 * 利用Scanner读取项目中的文档
 */
public class TestScannerRead {

    public static void main(String[] args) {

        Scanner sc;
        try {
            // 读取项目中的文档
            sc = new Scanner(new File("ScannerTest.txt"));
            System.out.println("项目中的文本内容是:");
            // 通过判断是否有下一行来输出文档内容
            while (sc.hasNextLine()) {
                System.out.println(sc.nextLine());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

  运行结果:

项目中的文本内容是:
test
测试一下
哈哈

  如果从本地读取文档,TestScannerRead2.java

package com.bijian.study;

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

/**
 * 利用Scanner读取本地的文件
 */
public class TestScannerRead2 {

    public static void main(String[] args) {
        FileInputStream fis;
        try {
            // 利用文件上传功能
            fis = new FileInputStream("E:\\text\\ScannerTest.txt");
            // 设置文件编码
            Scanner sc = new Scanner(fis, "UTF-8");
            System.out.println("本地文件内容:");
            // 输出文件内容
            while (sc.hasNextLine()) {
                System.out.println(sc.nextLine());
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

  运行结果:

本地文件内容:
?test
测试一下
哈哈

 

参考文章:https://www.cnblogs.com/zhengchenhui/p/6008618.html

posted on 2018-12-24 21:28  bijian1013  阅读(390)  评论(0)    收藏  举报

导航