• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小不点儿大的由我做主!
流年似水!
博客园    首页    新随笔    联系   管理    订阅  订阅

标准I/O重定向

      Java控制台程序默认是以控制台键盘和显示器作为标准输入/输出设备的,在有些情况下,我们可能希望将程序的标准输入或标准输出进行重新定向。(我的理解就是,不用手动地在控制台用键盘输入,而是从一个文件或者其它有数据的地方输入。)比如程序测试时可能需要大量的数据,如果使用控制台输入测试数据的话每次都要重新输入,这样会很烦琐,引时可以考虑进行输入重定向。下面举了一个书上的例子:

import java.io.*;
public class TestSetInput
{
public static void main(String[] args){
   
try
   {
   FileInputStream fis
=new FileInputStream("d:/source.txt");
    System.setIn(fis);
    
int avg=0,total=0,count=0,num=0,i;
    BufferedReader br
=new BufferedReader(new InputStreamReader(System.in));
    String s
=br.readLine();
    
while (s!=null&&!s.equals("over"))
    {
     i
=Integer.parseInt(s);
     num
++;
     total
+=i;
     avg
=total/num;
     System.out.println(
"num="+num+"\ttotal="+total+"\tavg="+avg);
     s
=br.readLine();
    }
   }
   
catch (Exception e)
   {
    e.printStackTrace();
   }
}
}

       文件“source.txt”中每一行为一个整数。
       如果把前两行红色部分的代码去掉,则需要手动地在控制台输入数据。
       重定向是在java 1.1中System的静态方法,主要有三种:
            public static void setIn(InputStream in)
            public static void setOut(
PrintStream out)
            public static void setErr(
PrintStream err)

posted @ 2009-03-01 10:26  小不点儿大的由我做主!  阅读(228)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3