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

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

分享到:
评论

相关推荐

    Algorithm-panyifei.github.io.zip

    例如,栈用于后进先出(LIFO)的操作,队列则是先进先出(FIFO),二叉树能快速进行查找和插入操作,而哈希表提供了近乎常数时间的查找速度。这些数据结构的选择直接影响到算法的效率。 在这个项目中,可能包含了...

    javaIO操作入门

    本教程旨在为初学者提供Java IO操作的基础知识,帮助他们入门并理解这一核心概念。 Java IO库包含了大量类和接口,主要分布在java.io包中,它们提供了对输入输出流的支持。输入流用于从源获取数据,而输出流则用于...

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

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

    java jsp IO包 教程 新手入门

    ### Java JSP IO包 教程 新手入门 #### 一、引言 在Java编程中,输入/输出(简称I/O)操作是一项基础而重要的技术。它涉及到数据的读取与写入,广泛应用于文件处理、网络通信等多个场景。Java通过`java.io`包提供...

    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...

    基于socket.io和node.js搭建即时通信系统

    node.js入门** node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写高性能的应用程序。安装node.js通常只需下载并运行安装程序,然后添加环境变量,确保在命令行中...

    S7-300 PROFINET IO 通信快速入门.pdf

    在讨论S7-300 PROFINET IO通信快速入门时,必须首先理解PROFINET的基础知识。...通过逐步的指导和实际操作,使用者可以有效地完成PROFINET IO通信的配置与管理,从而在实际应用中实现自动化设备的稳定通信和高效控制。

    watertime.github.io

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

    gopl.io:我在《 Go编程语言》一书中针对练习的解决方案

    《Go编程语言》是Go语言官方推荐的入门书籍,由Alan A. A. Donovan和Brian W. Kernighan合著,全面介绍了Go语言的语法、特性以及编程实践。"gopl.io"是一个与该书配套的在线资源,提供了书中的练习题及相应的解决...

    docs:dolater.io 的文档

    "指数"可能是指服务的核心特性、功能概述或是如何入门的引导,而"例子"则可能包含实际操作的代码示例或用法演示,帮助用户更好地理解和应用 dolater.io。 在深入探讨 dolater.io 的具体知识点之前,我们需要了解它...

    vtta.io:vtta.io的内容

    这些构成了JavaScript编程的基础,也是初学者入门的必备知识。 2. **JavaScript对象和数组**: 对象是JavaScript中的核心概念,用于存储和组织数据。它们由键值对组成,可以通过点号或方括号语法访问属性。数组则是...

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

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

    ccss17.github.io:메모들https://ccss17.github.io

    8. **版本控制**:作为托管在GitHub上的项目,可能涉及到Git和GitHub的基本操作,如克隆、提交、推送和拉取请求,这对于协作开发和版本管理至关重要。 通过下载并解压提供的"ccss17.github.io-master"压缩包,你...

    qpeyron.github.io

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

    dtrthi:在这里展示所有Craft.io品

    【描述】中的"每个人都必须从某个地方开始"可能是指初学者入门教程,或者是Craft.io平台的一个新手引导,强调无论经验如何,任何人都可以在这个平台上找到适合自己的起点。" :high_voltage: 有趣的事实:放屁不好玩...

    90c51IO口的应用

    90C51系列单片机是微控制器领域中非常经典的一款产品,尤其在教学和入门级项目中广泛应用。本文主要探讨的是如何使用90C51的IO口来控制LED灯,以此理解单片机的IO口控制原理。我们将通过STC90C51这个具体型号,以及...

    shadabgada.github.io

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

    NannanWang.github.io

    1. **MATLAB教程**:南南可能在网站上分享MATLAB的使用教程,涵盖基础操作到高级应用,帮助初学者快速入门并提升技能。 2. **代码示例**:网站可能包含MATLAB的代码示例,展示如何解决特定问题,比如数值计算、图像...

Global site tag (gtag.js) - Google Analytics