Iterator<T>接口可以被包装,方便操作。
import java.io.*;
import java.util.*;
public class FileUtil{
public static Iterator<String> getFileIterator(String filename)
throws IOException{
final FileReader fr = new FileReader(new File(filename));
final BufferedReader br = new BufferedReader(fr);
return new Iterator<String>(){
String line = getLine();
public boolean hasNext() {
return line != null;
}
public String next() {
String res = line;
line = getLine();
return res;
}
public void remove() {
throw new UnsupportedOperationException();
}
private String getLine(){
String line;
try{
line = br.readLine();
}catch(IOException e){
line = null;
}
return line;
}
};
}
public static void main(String[] argv){
Iterator<String> iString = null;
try {
iString = FileUtil.getFileIterator("zhanglizhe.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(iString!=null && iString.hasNext())
System.out.println(iString.next());
}
}