• Java


    IO_扫描流:Scanner

    在改进输出功能不足方面提供了打印流(PrintSream);利用BufferedReader类(缓冲输入流)解决了大文本数据的输入和读取操作,但是BufferedReader类在读取数据时只可以按照字符串方式读取(public String readLine();)且固定使用换行 作为分隔符,由此暴露出BufferedReader类的功能不足以未来的大发展。

    Scanner类

    • java.util.Scanner:(JDK 1.5

      • 专门负责解决输入流的操作问题
      public final class Scanner
      extends Object
      implements Iterator<String>
      
    • 构造方法:

    public Scanner(File source)
    public Scanner(InputStream source)
    public Scanner(Readable source)
    public Scanner(ReadableByteChannel source)
    public Scanner(String source)
    
    • 类方法

    判断是否有指定数据:

    public boolean hasNextXxx();
    // 举例:
    public boolean hasNext();//表示有数据
    public boolean hasNextDouble();//表述输入的是小数
    

    取出数据:

    public String nextXxx();
    // 举例:
    public String next();//默认返回字符串
    public double nextDouble();//自动转型返回double数据
    

    除了利用hasNextXxx() 和 nextXxx() 方法判断数据以外,在hasNext() 和 next() 方法中支持使用正则表达式对数据进判断

    public boolean hasNext(regax);
    public String next(regax);
    

    实例:

    public class TestDemo {
    	public static void main(String [] args) throws IOException {
    		// 准备接收键盘输入数据;System.in是InputStream型
    		Scanner scan = new Scanner(System.in);
    		if (scan.hasNextString()) {//判断是否有数据
    			System.out.println(scan.next()); //输出
    		}
    		scan.close();
    	}
    } 
    
    • 设置分隔符
    public Scanner useDelimiter(String pattern);
    
    public class TestDemo { 
    	public static void main(String [] args) throws IOException {
    		Scanner scan = new Scanner(new FileInputStream(new File("F:"+File.separator+"demo"+File.separator+"demo.txt")));
    		scan.useDelimiter("
    ");//设置 、
     作为换行符
    		while(scan.hasNext()) {
    			System.out.println(scan.next());
    		}
    		scan.close();
    	}
    } 
    

    总结

    在读取数据的时候,综合角度:Scanner类 比 BufferedReader 简单;在发现Scanner无法实现的时候再使用BufferedReader

    • InputStream类的功能不足问题被 Scanner 类解决

    • Reader类的功能不足问题被 BufferedReader 类解决

    • OutputStream类的功能不足问题被 PrintStream 类解决

    • Writer类的功能不足问题被 PrintWrite 类解决

  • 相关阅读:
    更新部分字段 NHibernate
    无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试的解决办法
    初识使用Apache MINA 开发高性能网络应用程序
    生产者消费者问题理解与Java实现
    国内HTML5前段开发框架汇总
    mongodb的sharding架构搭建
    spring配置声明式事务
    如何设计页面固定广告的效果
    结合实际问题浅谈如何使用蒙特卡罗算法模拟投资分析
    多线程实现资源共享的问题学习与总结
  • 原文地址:https://www.cnblogs.com/wangyuyang1016/p/11182080.html
Copyright © 2020-2023  润新知