`
liuwei1981
  • 浏览: 752670 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:156189
社区版块
存档分类
最新评论

85.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()方法,将这个方法返回的表示该对象的字符串打印出来。

分享到:
评论

相关推荐

    javaIO操作入门

    javaIO操作,入门的教材,初学者的资料

    Android代码-干货搜索器,功能是搜索gank.io中的干货

    这里使用的是Python库deanishe/alfred-workflow,它对workflow的很多功能和操作进行了封装,例如预处理使用者输入的数据、请求数据的缓存、workflow的更新等,作者担心我们不会用,还特意写了份很好的入门教程方便...

    techcorridorio.github.io:techcorridor.io的官方网站

    ) 容易被黑客入侵(无论您使用哪种操作系统,都可以在10分钟内完成克隆!) 初学者轻松上手入门该站点使用GitHub Pages。 GitHub Pages使用称为Jekyll的静态站点生成器。 提供了Dockerized开发环境。 在您的平台上...

    launch.io:Launch.IO是一个超髋关节,简单,智能,快速的时差React状态管理库

    )安装npm install launch.io入门您可以在此存储库中找到以下的。 创建您的应用程序服务(尽可能多!)。 每个服务应具有一个name , initialState和一组actions 。 const calculatorService = { name : "calculator...

    watertime.github.io

    安装取决于您的操作系统上,它是解释。 然后创建一个新目录并克隆此存储库: mkdir rain cd rain git clone https://github.com/inelaah/rain.git 安装所有依赖项: bundle install 网站配置 根目录中有一个...

    精品课程推荐 大数据与云计算教程课件 优质大数据课程 11.MapReduce IO操作(共61页).pptx

    大数据与云计算教程课件 优质大数据课程 11.MapReduce IO操作(共61页).pptx 大数据与云计算教程课件 优质大数据课程 12.序列化框架(共28页).pptx 大数据与云计算教程课件 优质大数据课程 13.深入MapReduce应用...

    FX2L-USB2.0高速控制器IO操作入门-固件

    通过此教程的学习,你可以立马体验到操作CYC768013 带来的乐趣。这里我通过控制CY7C68013单片机的PORTC输出来控制8个LED的现实。以及读入PORTB的输入信号,到电脑上。

    qpeyron.github.io

    Hydejack入门套件 使用进行博客更快,更干净的方法。 快速开始 在本地运行 克隆存储库(git用户),或并解压缩。 打开终端, cd进入根目录( _config.yml所在的目录) 运行bundle install [^ 1] 运行bundle exec ...

    shadabgada.github.io

    PAPA React JS恢复入门包和数字资产组合简历入门包说明该产品组合入门包是使用React制作的。 投资组合中的数据直接链接到JSON文件。 可以在JSON文件中对投资组合进行任何更改。 更改将反映在投资组合中。 这使您可以...

    teaxwin.github.io

    您好:Github Pages上个人网站的极简模板为什么问好? 你好有一个简单的目标:使每个人都可以访问GitHub Pages。 hello是一个极简主义的模板,可...入门要使用hello ,请按照下列步骤操作: 在hello存储库的主页上单击

    EricGebhart.github.io:我的网站

    > ) 编辑_config.yml (您可以直接在GitHub上执行此操作) 将url更改为https://<your>.github.io (不带< > ) 将baseurl更改为'' (空字符串) 提交更改。 再次转到“设置” ,查找GitHub Pages ,将“源”...

    FluentPath:System.IO的现代包装

    通过使用FluentPath而不是System.IO,您将能够链接调用并对文件集进行操作,就好像它们是单个文件一样。入门为了从Visual Studio运行对此程序包的测试,您需要安装和 。使用FluentPath 这最初是发布的。 .NET已有八...

    stm8s-IO操作的示例程序

    对stm8s的单片机进行的IO操作示例程序,入门还不错。

    zhaoeh.github.io

    zhaoeh.github.io博客适合Java语言开发服务器入门博客主要分为以下模块: Java基础介绍了Java语言的语法基础知识,包括数据类型,对象集合,条件结构,循环结构,文件操作,多线程,网络编程,反射等。 JavaWeb基础...

    my-portfolio:使用react.jssanity.io创建后端的投资组合

    Create React App入门 该项目是通过。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。 打开在浏览器中查看。 如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。 npm ...

    react-socket.io-聊天

    Create React App入门该项目是通过。可用脚本在项目目录中,可以运行:yarn start 在开发模式下运行应用程序。 打开在浏览器中查看。 如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。yarn test ...

    falafel:一个Node.js框架,使在tray.io上构建连接器变得非常简单

    入门 使用Yeoman生成器创建连接器,在出现提示时输入设置: yo trayio-nodejs-connector 接下来,以开发模式启动服务器(将自动生成connectors.json ): NODE_ENV=development node main.js 项目结构 Falafel...

    amazonclone.github.io:这是Amazon的功能齐全的克隆

    Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...

    thethings.iO-SDK-Javascript-CoAP

    #theThings.IO 节点 CoAP lib 这个 lib 允许连接到 coap.thethings.io 端点。 请访问的 #安装 npm install thethingsio-coap ##入门 注册并创建一个用户。 登录并转到,然后按“获取激活码”。 您可以使用以下...

    neethuvarghese.github.io

    neethuvarghese.github.io Create React App入门 由具有材料UI的引导的protfolio项目 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将...

Global site tag (gtag.js) - Google Analytics