Java学习提要——Scanner基础应用
2016-10-23 20:34
239 查看
BufferedReader可以解决大文本数据的读取操作
但是BufferedReader有两个问题:
1.读取数据的时候只可以按照字符串返回:public String readLine() throws IOException;
2.所有的分隔符都是固定的。
所以此时依然可以设置一个文件的数据流,
但是在进行文件读取的时候,我们要考虑分割符问题
设置分隔符
public Scanner useDelimiter(String pattern)
但是BufferedReader有两个问题:
1.读取数据的时候只可以按照字符串返回:public String readLine() throws IOException;
2.所有的分隔符都是固定的。
1.Scanner的基本应用
java.util.Scanner类//构造方法: public Scanner(InputStream source) Scanner类里面定义了以下两大组方法: //1.判断是否有指定数据,Xxx代表不同类型: public boolean hasNextXxx(); //2.取出数据,Xxx代表不同类型: public 数据类型 nextXxx();
//以键盘输入为例: import java.util.Scanner; public class Nice { public static void main(String[] args) throws Exception{ Scanner scan = new Scanner(System.in); //准备接收输入数据 System.out.print("请输入内容:"); if (scan.hasNext()) { //现在有输入数据 System.out.println("输入内容:" + scan.next()); } scan.close(); } } //需要注意的是,如果输入的是字符串,是否存在hasNext()就没那么重要(可以不写) //但是如果是其他类型,那么hasNextXxx()就有意义了 //在上面基础上改写,hasNextXxx() if (scan.hasNextDouble()) { //表述输入的是一个小数 double score = scan.nextDouble(); //省略了转型 System.out.println("输入内容:" + score); } else { //表示输入的不是一个小数 System.out.println("输入的不是数字,错误"); }
//使用正则验证 import java.util.Scanner; public class Nice { public static void main(String[] args) throws Exception{ Scanner scan = new Scanner(System.in); //准备接收输入数据 System.out.print("请输入生日:"); if (scan.hasNext("\\d{4}-\\d{2}-\\d{2}")) { //现在有输入数据 String bir = scan.next("\\d{4}-\\d{2}-\\d{2}"); System.out.println("输入内容:" + bir); } else { System.out.println("输入的生日格式错误"); } scan.close(); } }
2.分隔符问题
在Scanner类的构造里面由于接收的类型是InputStream,所以此时依然可以设置一个文件的数据流,
但是在进行文件读取的时候,我们要考虑分割符问题
设置分隔符
public Scanner useDelimiter(String pattern)
import java.io.File; import java.io.FileInputStream; import java.util.Scanner; public class Nice { public static void main(String[] args) throws Exception{ Scanner scan = new Scanner(new FileInputStream(new File("E:"+File.separator+"test.txt"))); scan.useDelimiter("\n"); //设置读取的分隔符 while (scan.hasNext()) { System.out.println(scan.next()); } scan.close(); } }
相关文章推荐
- java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)
- Java学习-026-类名或方法名应用之二 -- 统计分析基础
- Java基础学习应用_for循环打印水仙花数
- Java学习提要——'Thread类'与'Runnable接口'基础
- JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
- JAVA基础 day22 File类的方法和应用 利用递归获取目录下的所有文件 Properties类的应用(和IO技术结合,存取配置文件) 打印流和合并流等功能类的学习应用 切割文件练习
- Java基础学习应用_数组常用方法与排序(一)
- Java基础学习总结(75)——Java反射机制及应用场景
- Java数字签名基础原理与应用学习笔记
- Java学习笔记之基础应用(2015.3.21)
- 你不知道的Java学习笔记1--JAVA 基础应用编程
- Java基础学习第二十二天——转换流之字符流应用
- Java基础学习应用_数组常用方法与排序(二)
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- Java基础学习笔记 -- 6(Scanner、Random)
- Java学习提要——'接口'的基础示例
- Java学习提要——Runtime类基础
- Java基础学习笔记12——(Scanner的使用,String类的概述和使用样例)
- Java基础学习应用_JDBC
- Java基础学习应用_for循环打印99乘法表