陈华江(HuaChiang Chen) 陈泉冰专栏

未老之前携你远行...

流式输入/输出 示例

/*

wc( )方法对任何输入流进行操作并且计算字符数,行数和字数。它在lastNotWhite里追踪字数的奇偶和空格。当在没有参数的情况下执行时,WordCount以System.in为源流生成一个InputStreamReader对象。该流然后被传递到实际计数的 wc( )方法。当在有一个或多个参数的情况下执行时,WordCount 假设这些文件名存在并给每一个文件创建FileReader,传递保存结果的FileReader对象给wc( ) 方法。两种情况下,在退出之前都打印结果。

*/

//A word counting utility.
import java.io.*;
class WordCount{
 public static int intWords = 0;
 public static int intLines = 0;
 public static int intChars = 0;
 public static void wc(InputStreamReader isr) throws IOException{
  int c = 0;
  boolean lastWhite = true;
  String whiteSpace = "/t/n/r";
  while((c=isr.read())!=-1){
   //Count characters.
   intChars++;
   //Count lines.
   if(c=='/n'){
    intLines++;
   }
   //Count words by detecting the start of a word
   int intIndex = whiteSpace.indexOf(c);
   if(intIndex == -1){
    if(lastWhite == true){
     ++intWords;
    }
    lastWhite = false;
   }else{
    lastWhite = true;
   }
  }
  if(intChars !=0){
   ++intLines;
  }
 }
 public static void main(String[] args)
 {
  FileReader fr ;
  try{
   if(args.length ==0){
    //We're working with stdin
    wc(new InputStreamReader(System.in));
   }else{
    //We're working with a list of files.
    for(int i=0;i<args.length;i++){
     fr = new FileReader(args[i]);
     wc(fr);
    }
   }
  }catch(IOException e){
   return;
  }
  System.out.println(intLines + " " + intWords + " " + intChars);
 }
}

阅读更多
个人分类: Java
想对作者说点什么? 我来说一句

java输入输出流式输入输出

2009年02月20日 151KB 下载

没有更多推荐了,返回首页

不良信息举报

流式输入/输出 示例

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭