`
hoonee
  • 浏览: 9830 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaSE_83_IO操作

阅读更多
多数应用程序在运行过程中要与用户进行交互,通常的交互方式是:用户使用键盘作为标准输入设备向程序中输入数据,程序利用计算机显示器屏幕做为标准输出设备显示输出数据。这种程序被称为控制台应用程序,这种输入/输出被称为标准I/O或控制台I/O(Input/Output)。


java.lang.System类的三个类成员提供了有关的I/O操作功能:


System.out提供向“标准输出”写出数据的功能,out是System中的一个static final的PrintStream类型变量,它会被初始化关联到运行Java程序的终端窗口。可以通过System类的setOut()方法来改变默认的标准输出流;
System.in提供从“标准输入”读入数据的功能,in是System类中的一个static final的InputStream类型变量,它会被初始化关联到用户键盘。可以通过System类的setIn()方法来改变默认的标准输入流;
System.err提供向“标准错误输出”写出数据的功能。通常情况下,System.err使用方法与System.out相同,用于向标准的错误设备输出错误信息,但很少使用。同样可以使用System类的setErr()方法来改变默认的标准错误输出流。


在这里,用到了输入/输出流的概念,关于流的编程,将在后续中详细讲解。
我们来看一个接受键盘输入的Java应用程序。

import java.io.*;

public class KeyboardInput {
public static void main(String args[]) {
  String s;
  // 创建一个BufferedReader对象从键盘逐行读入数据
  InputStreamReader ir = new InputStreamReader(System.in);
  BufferedReader in = new BufferedReader(ir);

  System.out.println("Unix: Type ctrl-d or ctrl-c to exit."
    + "\nWindows: Type ctrl-z or ctrl-c to exit.");

  try {
   // 每读入一行,向标准输出设备输出
   while ((s = in.readLine()) != null) {
    System.out.println("Read: " + s);
   }

   // 关闭流,这步动作在对流的操作完成后一定要做。
   in.close();
  } catch (IOException e) { // Catch any IO exceptions.
   e.printStackTrace();
  }
}
}


编译运行这个程序,它将阻塞等待输入,我们可以通过键盘向它输入数据,这个程序从标准输入中逐行读取输入的数据,然后将它们显示到标准输出中(此处是默认的屏幕)。



在Windows命令行下可以通过按下“Ctrl+C”来终止这个应用的运行。



下面我们来看如何向标准设备输出数据。其实在前面的章节中,我们已经多次用到这个功能,在此作一个总结。


通常我们使用System.out.println()/System.out.print()两个常用的方法向标准设备输出。println()方法将参数打印出来,并加上”\n”字符,也就是换一个新行。而print()方法只打印参数,但不加新行。


另外,System.out.print()和System.out.println()方法对多数简单数据类型 (boolean, char, int, long, float, double)和char[], Object以及String进行了重载,使得它们可以向外输出所有的数据类型数据。


需要注意的是,print(Object)或println(Object)将会调用Object对象的toString()方法,输出表示对象的字符串。


下面我们来看一个项标准设备输出数据的例子。

public class Echo {
public static void main(String args[]) {
  int a = 100;
  boolean b = true;
  System.out.print("echo an int primitive type data:");
  System.out.println(a);
  System.out.print("echo a boolean primitive type data:");
  System.out.println(b);
  System.out.print("echo an object:");
  Object o = new Object();
  System.out.println(o);
}
}


在这个程序中,向标准输出设备输出两种简单类型的数据:int和 boolean,以及一个Object,正如上面所述,System.out的这些println()方法都已经针对不同的数据类型进行了重载,所以可以直接使用。而对于引用类型数据,它会调用该对象上的toString()方法,将这个方法返回的表示该对象的字符串打印出来。
分享到:
评论

相关推荐

    JavaSE_4_JavaIO操作_1

    File类,输入和输出流,字节-字符转换流,打印流PrintStream,对象序列化

    JavaSE_4_JavaIO操作_2

    内存操作流,System对IO流的支持,缓冲区读取,Scanner类,字符编码问题,装饰着模式Decorator

    JavaSE_4_JavaIO操作_3

    类层次,缓冲流

    JavaSE基础篇 -- IO流的详细操作

    本资源内详尽描述了Java基础的IO操作,包括基本的文件读取、写入、复制、分割、合并等动作,详情另可参见我的博客http://blog.csdn.net/zhongkelee/article/details/47061013

    JavaSE的项目源码、主要是文件的IO操作! Java学习资料

    JavaSE的项目源码、主要是文件的IO操作! Java学习资料

    JavaSE专题-IO流重点总结(必读).doc

    Try块里面存放的是有可能发生异常的代码,通常和catch块一起使用,catch块用于处理try块中抛出的异常,finally块不是必须的,通常将释放资源(例如IO流的close方法)的代码放到finally块里面 注意:finally和Final还有...

    javaSE经典笔记( 完整)

    javaSE笔记、经典、全面 基本操作 Java基础 面向对象 多线程 String类 集合 IO GUI socket网络编程 正则表达式

    JavaSE重点知识总结精华(全)

    基本操作 Java基础 面向对象 多线程 String类 集合 IO socket网络编程 反射 泛型 你想要的通通都在这里

    狂神笔记,b站狂神说课程笔记大全(最新)

    10、JavaSE:IO流 11、JavaSE:多线程 12、JavaSE:网络编程 13、JavaSE:Gui编程 14、JavaSE:注解和反射 15、MySQL和JDBC 16、前端:Html5 17、前端:CSS3 18、前端:JavaScript、jQuery 19、JavaWeb 20、MyBatis ...

    JavaSE学习笔记.docx

    Java学习笔记 初识Java编程、Java基本数据类型、运算符、流程控制、数组、方法、面相对象、Java常用类库、集合、异常处理、多线程、IO流、网络编程、Java的反射机制、泛型、枚举、注解、配置文件操作、发送邮件、...

    狂神说上课笔记未删减 Java基础到技术升级

    10、JavaSE:IO流 11、JavaSE:多线程 12、JavaSE:网络编程 13、JavaSE:Gui编程 14、JavaSE:注解和反射 15、MySQL和JDBC 16、前端:Html5 17、前端:CSS3 18、前端:JavaScript、jQuery 19、JavaWeb ...

    狂神说Java 笔记,java入门,docker ,spring 全家桶,redis , mysql , vue , javascript ,htm5, css

    10、JavaSE:IO流.pdf 11、JavaSE:多线程.pdf 12、JavaSE:网络编程.pdf 13、JavaSE:Gui编程.pdf 14、JavaSE:注解和反射.pdf 15、MySQL和JDBC.pdf 16、前端:Html5.pdf 17、前端:CSS3.pdf 18、前端:...

    新版java教程 全套javase零基础到高级视频教程小白自学编程下载地址

    ·玩转ava操作文件File类常用操作 ·案例实战IO流Input、Output Stream流 ·详细常见Object、Math、String等核心类 ·掌握枚举Enum和时间日期LocalDate使用 ·面试必备常见avaSE核心面试题,贯穿整个课程 综合项目...

    Java面试宝典PLUS.pdf

    包括JavaSE基础(多态、异常处理、常用API、数据类型、IO操作、集合、多线程和并发库、内部类)、JavaSE高级(反射、动态代理、设计模式&回收机制、加载器、JVM基础、GC基础)、JavaWeb基础(JDBC技术、HTTP协议、...

    JavaNotes:自学,存放学习笔记

    Java笔记 自学ing,存放学习笔记 目录 JavaSE 面向对象 Java集合 常用类 异常 ... MySQL常用操作 MySQL高效优化 Oracle Oracle Oracle优化 Oracle 春天 行动计划 国际奥委会 春天 SpringMVC 弹簧靴

    还在死记硬背面试题,面试官问我题的时候,我哭了,试试这一套,精心提炼核心重点内容简化实战应用面试宝典10秒钟搞定一道面试题!

    最新版Java面试宝典,精心提炼核心重点内容简化应用面试实战10秒一道,Java初级,高级,框架,底层原理,数据库,操作系统,微服务,IO,并发,JVM,容器,SpringBoot,SpringCloud,linx,面向对象,常用类,多线程,...

    Java基础技术文档

    第01章 Java简介 第02章 Java编程环境 第03章 Java基本语法 第04章 Java与面向对象编程 ...第09章 Java的IO系统 第10章 多线程编程 第11章 Java小程序Applet 第12章 操作数据库 第13章 网络编程 第14章 Servlet编程基础

    java基础案例与开发详解案例源码全

    1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 ...

    java面试题库2021.pdf

    一、 JavaSE 部分 1、 Java 基础 ①Java 基础部分(基本语法, Java 特性等) ②关键字 ③面向对象 ④集合部分 2、 Java 高级知识 ①线程 ②锁 ③JDK ④反射 ⑤JVM ⑥GC ⑦ IO 和 NIO, AIO 二、 JavaEE 部分 1、 ...

    单点登录源码

    SpringMVC | MVC框架 | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc) ...

Global site tag (gtag.js) - Google Analytics