/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package di.uniba.it.tri.extractor; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.zip.GZIPInputStream; /** * * @author pierpaolo */ public class TextFileIterableExtractor implements IterableExtractor { private BufferedReader reader; private int counter = 0; @Override public void extract(File file) throws IOException { counter = 0; if (reader != null) { reader.close(); } if (file.getName().endsWith(".gz")) { reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(file)))); } else { reader = new BufferedReader(new FileReader(file)); } } @Override public boolean hasNext() throws IOException { boolean ready = reader.ready(); if (!ready) { reader.close(); } return ready; } @Override public String next() throws IOException { counter++; if (counter % 100 == 0) { System.out.print("."); if (counter % 10000 == 0) { System.out.println("." + counter); } } return reader.readLine(); } }