Java知识点总结(JavaIO- System类对IO的支持与Scanner类 )

@(Java知识点总结)[Java, JavaIO]

[toc]

System类

public  class Demo09 {public static void test1() {try {System.out.write("hello".getBytes());} catch (IOException e) {e.printStackTrace();};}public static void test2() {try {System.out.write(Integer.parseInt("hello"));} catch (Exception e) {System.err.println(e);};}// 输入的是英文没有问题,输入的是中文则会出现乱码,这是因为数据是一个字节一个字节读取进来的,汉字是2个字节// 解决方法是将全部输入的数据放到缓冲区,然后一次性从内存中读取出来,这样数据只读一次,不会乱码public static void test3() throws IOException {System.out.println("请输入内容:" );InputStream in = System.in;int temp = 0;StringBuffer sb = new StringBuffer();while ((temp = in.read()) != -1) {char c = (char) temp;if (c == '\n') {break;}sb.append(c);}in.close();System.out.println("输入的内容是:"  + sb.toString());}// 输出重定向。错误信息不在控制台显示,而是在err.log文件中public static void test4() throws FileNotFoundException {try {System.out.write(Integer.parseInt("hello"));} catch (Exception e) {System. setOut(new PrintStream(new File("E:" + File.separator+ "err.log")));System.out.println(e);};}// 输入重定向public static void test5() throws Exception {System. setIn(new FileInputStream(new File("E:" + File.separator+ "err.log")));InputStream in = System.in;byte[] b = new byte[1024];int len = in.read(b);System.out.println(new String (b,0,len));}public static void main(String[] args) {/** test1(); test2();*//** try { test3(); } catch (IOException e) { e.printStackTrace(); }*//*try {test4();} catch (FileNotFoundException e) {e.printStackTrace();}*/try {test5();} catch (Exception e) {e.printStackTrace();}}
}

Sanner类

JDK 1.5后提供的输入数据类,此类位于java.util 包中,不仅可以完成输入数据的操作,还可以方便地对输入数据进行验证。

public class Demo11 {public static void add() {int i = getInt();float j = getFloat();System.out.printf("%d+%1.2f=%1.2f", i, j, i + j);}//从文件中读取数据public static void  getDataFromFile(){File f = new File("E:"+File.separator+"test.txt");StringBuffer sb = new StringBuffer();try {Scanner sc = new Scanner(f);sc.useDelimiter("\n");// (设置读取的分隔符)空格处理while(sc.hasNext()){ //读取下一行sb.append(sc.next()+"\n");}} catch (FileNotFoundException e) {e.printStackTrace();}System.out.println(sb.toString());}// 整数的输入public static Integer getInt() {Scanner sc = new Scanner(System.in);System.out.println("请输入整数:" );if (sc.hasNextInt()) {return sc.nextInt();} else {System.out.println("输入的不是整数,请重新输入:" );return getInt();}}// 小数的输入public static Float getFloat() {Scanner sc = new Scanner(System.in);System.out.println("请输入一个小数:" );if (sc.hasNextFloat()) {return sc.nextFloat();} else {System.out.println("输入的不是小数,请重新输入:" );return getFloat();}}//日期输入public static Date getDate() {Scanner sc = new Scanner(System.in);String str = "";System.out.println("请输入一个日期(yyyy-MM-dd):" );if (sc.hasNext("^\\d{4}-\\d{2}-\\d{2}$")) {str = sc.next();try {return new SimpleDateFormat("yyyy-MM-dd").parse(str);} catch (ParseException e) {e.printStackTrace();return null;}} else {System.out.println("您输入的不是日期,请重新输入!" );return getDate();}}public static void main(String[] args) {/** Scanner sc = new Scanner(System.in); System.out.println("输入数据:");* sc.useDelimiter("\n"); String str = sc.next();* System.out.println("输入的数据为:" + str);*///add();//System.out.println(getDate());getDataFromFile();/*西瓜、    苹果、      香蕉橘子。。。*/}}

Java知识点总结(JavaIO- System类对IO的支持与Scanner类 )相关推荐

  1. Java学习总结:48(System类对IO的支持)

    System类对IO的支持 System类与IO有关的3个对象常量 No. 常量 类型 描述 1 public static final PrintStream err 常量 显示器上错误显示 2 p ...

  2. JavaSE_第14章 File类与IO流

    第14章 File类与IO流 主要内容 File类 字节流 字符流 文件流 缓冲流 转换流 数据流 对象流 打印流 Scanner与System与IO流 教学目标 使用File类对象表示文件或目录 能 ...

  3. 第14章 File类与IO流

    第14章 File类与IO流 主要内容 File类 字节流 字符流 文件流 缓冲流 转换流 数据流 对象流 打印流 Scanner与System与IO流 教学目标 使用File类对象表示文件或目录 能 ...

  4. 【零基础学Java】—Scanner类的使用( 十)

    [零基础学Java]-Scanner类的使用( 十) Scanner类的功能:可以实现键盘输入数据,到程序中去. 引用类型的一般使用步骤: 1️⃣ 导包 import 包路径.类名称: 如果需要使用的 ...

  5. java scanner 教程,Java Scanner 类 - Java 入门教程

    一直以来,我们都使用 System.out.println() 方法向屏幕打印内容,那么如何接收输入的内容呢?本小节所学习的 Scanner 类就可以实现对输入内容的接收.在本小节,我们将学习 Sca ...

  6. Java Scanner类的详细介绍(Java键盘输入)

    Java Scanner类的详细介绍(Java键盘输入) 一.Scanner类的简单使用 二.Scanner类的详细介绍 1.判断输入数据类型 2.next()与nextLine()的区别 3.求多个 ...

  7. 强哥说Java--Java Scanner 类

    Java Scanner类 Java Scanner 类 前言 1. 定义 2. Scanner 对象创建 3. 常用方法 3.1 next()及其同伴方法 3.1.1 next() 方法 3.1.2 ...

  8. P25 Scanner类

    P25 Scanner类 1.什么是Scanner类 2.引用类型使用步骤 2.1 导包 2.2 创建对象 2.3 调用方法 3.Scanner使用步骤 4.练习 4.1 求和 4.2 取最值 5.匿 ...

  9. Scanner类的next()和nextLine()

    用户交互 scanner类来获取用户的输入 Scanner类的next()和nextLine() 方法获取输入的字符串,在读取前我们一般使用hasNext()与hasnextLine()判断是否还有输 ...

最新文章

  1. php div图片局部刷新,前端jquery 后端 thinkphp 实现局部刷新
  2. AI智商评测标准专家研讨会邀请,2018年12月20日北京
  3. 如何判断变量是否是数字
  4. Navicat for SQL Server 文件属性有哪些
  5. 分计算iv值_一文读懂评分卡的IV、KS、AUC、GINI指标
  6. 用python画个三维地球_如何用Python制作三维散点图?
  7. Github | 机器人工具大全
  8. 小程序 web socket_程序员的薪水和发展方向大全
  9. android实机闪退,安卓模拟器,安卓真机,进入播放界面就会闪退
  10. 中国内部折叠门市场趋势报告、技术动态创新及市场预测
  11. 《『若水新闻』客户端开发教程》——13.代码编写(5)
  12. BCELoss忽视某个类别
  13. 怎样开图纸便宜_一步一步教你如何看懂工程图纸,值得收藏!
  14. Maven—Windows操作系统中安装配置Maven环境
  15. java invoke 返回类型_java-控制器处理程序方法支持的返回类型
  16. Diffusion Model扩散模型原理
  17. 5G牌照发放了,但需要购买5G手机的用户应等明年再购买
  18. 【技术思路】极客时间-左耳听风-开篇词1
  19. android wifi驱动加载流程
  20. ElasticSearch安装、IK、映射、索引管理、搜索管理和集群管理

热门文章

  1. 【248】◀▶IEW-Unit13
  2. 关于EventSource的精华
  3. linux中cp:overwrite提示的问题
  4. HDU 1429 胜利大逃亡(续)
  5. hdu 1811 Rank of Tetris (并查集+拓扑排序)
  6. 移动端应用类型及特点
  7. ajax 文件数据流,Ajax如何读取数据流中的xml文件?
  8. requestmapping配置页面后_@RequestMapping使用须知
  9. 浅析java中的死锁_Java学习笔记五十五(死锁问题)
  10. 用python分析excel数据_Python3分析Excel数据