使用缓冲输入流优化数据输入能力 | 带你学《Java语言高级特性》之六十七

简介: 本节将为读者介绍缓冲字符输入流BufferedReader类,并向读者介绍使用缓冲流的一些数据输入方面的优点。

上一篇:System类助力标准IO实现 | 带你学《Java语言高级特性》之六十六
本节将为读者介绍缓冲字符输入流BufferedReader类,并向读者介绍使用缓冲流的一些数据输入方面的优点。

【本节目标】
通过阅读本节内容,你将先了解到BufferedReader的继承关系,并了解到其核心方法readLine在数据输入方面带来的便利性,学会使用BufferedReader类实现键盘数据的输入和处理工作。

BufferedReader类

BufferedReader类提供的是一个缓冲字符输入流的概念,也就是说利用BufferedReader类可以很好的解决输入流数据的读取问题,这个类是在最初的时候提供的最完善的数据输入的处理(JDK1.5之前,JDK1.5后出了一个更很强大的类代替此类),之所以使用这个类来处理,是因为这个类中提供有一个重要的方法:

读取一行数据: public String readLine() throws IOException;

image.png
BufferedReader

将利用这个类实现键盘输入数据的标准化定义。

范例:实现键盘数据输入

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入信息:");
        String msg=input.readLine();   //接收输入信息
        System.out.println("输入内容为:"+ msg);
        input.close();
    }
}
//请输入信息:马上就放假了,我们要一起开心的学习,不放假了!
//输入内容为:马上就放假了,我们要一起开心的学习,不放假了!

在以后的实际开发中经常会遇见输入数据的情况,而所有输入数据的类型都是通过String描述的,那么这样就方便了接收者进行各种处理。

范例:接收整型输入并且验证

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入您的年龄:");
        String msg=input.readLine();   //接收输入信息
        if(msg.matches("\\d{1,3}")){    //是否由数字所组成
            int age=Integer.parseInt(msg);
            System.out.println("年龄为:"+age);
        }else{
            System.err.println("请确保您看懂了我的提示,不要随意输入,伤不起!");
        }
    }
}

对于现在的Java开发由键盘输入数据的情况并不多了,但是作为一些基础的逻辑训练还是可以使用键盘输入数据的,而键盘输入数据的标准做法(JDK1.5之前)就是上面的实现操作。实际开发中所有输入的数据全部都是字符串,这样可以方便验证与进行字符串的复杂处理。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:使用Scanner类完成数据输入 | 带你学《Java语言高级特性》之六十八
更多Java面向对象编程文章查看此处

相关文章
|
19天前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
|
1月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
26天前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
26 3
|
1月前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
1月前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
90 2
|
1月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
33 2
|
1月前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
54 4
|
1月前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
64 2
|
1月前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
44 2
|
Java
Java输入流之BufferReader和Scanner的用法!
在Java中,我们都知道Java的标准输入串是System.in。但是我们却很少在Java中看到谁使用它,这是因为我们平时输入的都是一个字符串或者是一个数字等等。而System.in提供的read方法是通过字节来读取数据的,所以对我们来说太麻烦啦! 在Java SE6中我们可知道一个非常方便的输入数据的类Scanner,位于java.util包中,这个Scanner的具体用法为Scanner in = new Scanner(System.in);。
1201 0