JavaSE_83_IO操作_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JavaSE_83_IO操作

JavaSE_83_IO操作

 2014/4/23 21:52:57  hoonee  程序员俱乐部  我要评论(0)
  • 摘要:多数应用程序在运行过程中要与用户进行交互,通常的交互方式是:用户使用键盘作为标准输入设备向程序中输入数据,程序利用计算机显示器屏幕做为标准输出设备显示输出数据。这种程序被称为控制台应用程序,这种输入/输出被称为标准I/O或控制台I/O(Input/Output)。java.lang.System类的三个类成员提供了有关的I/O操作功能:System.out提供向“标准输出”写出数据的功能,out是System中的一个staticfinal的PrintStream类型变量
  • 标签:Java 操作 ASE
多数应用程序在运行过程中要与用户进行交互,通常的交互方式是:用户使用键盘作为标准输入设备向程序中输入数据,程序利用计算机显示器屏幕做为标准输出设备显示输出数据。这种程序被称为控制台应用程序,这种输入/输出被称为标准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()方法,将这个方法返回的表示该对象的字符串打印出来。
发表评论
用户名: 匿名