黑马程序员技术交流社区

标题: 关于System.setOut和System.setIn................ [打印本页]

作者: 于小皓    时间: 2013-8-11 21:58
标题: 关于System.setOut和System.setIn................

  1. import java.io.FileInputStream;
  2. import java.io.FileNotFoundException;
  3. import java.io.PrintStream;
  4. import java.util.Scanner;

  5. @SuppressWarnings("unused")
  6. public class Demo04_System {

  7.         public static void main(String[] args) throws Exception {
  8.                 demo1();
  9. //                demo2();
  10.         }

  11.         private static void demo2() throws FileNotFoundException {
  12.                 System.setOut(new PrintStream("System.txt"));                // 标准输出流, 默认指向屏幕
  13.                 System.out.println("Hello world!");
  14.         }

  15.         private static void demo1() throws FileNotFoundException {
  16.                 System.setIn(new FileInputStream("System.txt"));        // 标准输入流, 默认指向键盘
  17.                 Scanner scanner = new Scanner(System.in);
  18.                 System.out.println(scanner.nextLine());
  19.                 scanner.close();
  20.         }

  21. }
复制代码
如题 ,老师将这块的时候我瞌睡了   FileInputStream 和FileOutputStream我都知道  但是那个  System.setOut和System.setIn到底是干什么的  也是输出流和输出流?
作者: 曹满林    时间: 2013-8-11 22:10
应该是用来设置输入流或是流出流的来源,以输入流举例,一个输入流可以来源于一个文件(System.setIn(new  fileInputStream(文件名))可以设置从该文件名中读取,而在楼主举的例子中是把输入流的源头指向了键盘,指流数据是从键盘中获取的,当然输出流可以秀以通过system.setOut()进行相应的设置;(这也是通过自己的学习后简单的了解,不知道对不对){:soso_e100:}                                                                                                                                                                                                                                                                                
作者: sergio    时间: 2013-8-11 22:28
这是用来改变输入输出流的方式,如从那获取、输出到哪。让我们来看下JDK中的解释。
static void setIn(InputStream in) 重新分配“标准”输入流,从那获取到这个字节流流。
static void setOut(PrintStream out) 重新分配“标准”输出流,打印输出流。

而这上面提到的in,out都有解释:
in
public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
out
public static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
对于简单独立的 Java 应用程序,编写一行输出数据的典型方式是:System.out.println(data),也就是打印到输出台上。



作者: 神之梦    时间: 2013-8-11 23:53
哥们,以后留意点,将新知识的时候不要瞌睡了
作者: penpen    时间: 2013-8-12 00:39
有啥不懂得找API。。。{:soso_e120:}
作者: penpen    时间: 2013-8-12 00:46
http://docs.oracle.com/javase/7/docs/api/  官方解释




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2