DataFileReader.java 1.27 KB
Newer Older
wang-jinfeng committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
package mobvista.dmp.datasource.personagraph;

import java.io.BufferedReader;
import java.io.IOException;
import java.util.concurrent.BlockingQueue;

/**
 *
 */
public class DataFileReader implements Runnable {
    private BlockingQueue blockingQueue;
    private BufferedReader fileReader;
    private Boolean readable = true;

    public DataFileReader(BlockingQueue blockingQueue, BufferedReader fileReader) {
        this.blockingQueue = blockingQueue;
        this.fileReader = fileReader;
    }

    public void setFileReader(BufferedReader fileReader) {
        this.fileReader = fileReader;
    }

    public void setReadable(Boolean readable) {
        this.readable = readable;
    }

    @Override
    public void run() {
        try {
            String line = fileReader.readLine();
            while (line != null) {
                if (!readable) {
                    Thread.sleep(20000);
                } else {
                    blockingQueue.put(line);
                    line = fileReader.readLine();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fileReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}