题目:编写一个Java程序,分别为每一个文件创建一个线程,并使用这些线程同时来为所有的文件统计行数及耗时的时间。
package je3.thread;
import java.io.*;
public class LineCounter extends Thread {
String filename;
public LineCounter(String filename){
this.filename=filename;
}
public void run(){
Counter();
}
public void Counter(){//实现异步统计文件的行数,同步可以在前添加sychronized修饰关键词
try{
File f=new File(filename);
FileReader in=new FileReader(f);
long start=System.currentTimeMillis();
LineNumberReader out=new LineNumberReader(in);
while(out.readLine()!=null){}
int number=out.getLineNumber();
System.out.println(" number of filename"+filename+": "+number);
out.close();
in.close();
long end=System.currentTimeMillis();
System.out.println("The time of running--filename"+filename+": "+(end-start));
}
catch(IOException e) {}
}
public static class Test{
public static void main(String[] args){
if(args.length==0)
{
System.err.println("usage: file reader:<file name>");
System.exit(0);
}
for(int i=0;i<args.length;i++)
{
String filename=args[i];
LineCounter lineNumber=new LineCounter(filename);
lineNumber.start();
}
}
}
}