76 lines
1.7 KiB
Java
76 lines
1.7 KiB
Java
package id.iptek.utms.agent.model;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.File;
|
|
import java.io.FileReader;
|
|
import java.io.IOException;
|
|
import java.io.Serializable;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
/**
|
|
*
|
|
* @author jakar
|
|
*/
|
|
public class FileReaderCacheObj implements Serializable {
|
|
|
|
private File file;
|
|
private BufferedReader reader;
|
|
private final AtomicInteger currentReadRowNum = new AtomicInteger(0);
|
|
|
|
public FileReaderCacheObj() {
|
|
}
|
|
|
|
/**
|
|
* @return the file
|
|
*/
|
|
public File getFile() {
|
|
return file;
|
|
}
|
|
|
|
/**
|
|
* @param file the file to set
|
|
*/
|
|
public void setFile(File file) {
|
|
this.file = file;
|
|
}
|
|
|
|
/**
|
|
* @return the reader
|
|
*/
|
|
public BufferedReader getReader() {
|
|
return reader;
|
|
}
|
|
|
|
/**
|
|
* @return the currentReadRowNum
|
|
*/
|
|
public AtomicInteger getCurrentReadRowNum() {
|
|
return currentReadRowNum;
|
|
}
|
|
|
|
public void pointToFile(File file) throws IOException {
|
|
if(file == null) {
|
|
throw new IllegalArgumentException("File cannot be null!");
|
|
}
|
|
if(!file.exists()) {
|
|
throw new IOException("File not exists!");
|
|
}
|
|
if(!file.canRead()) {
|
|
throw new IOException("File not readable!");
|
|
}
|
|
this.file = file;
|
|
this.reader = new BufferedReader(new FileReader(this.file));
|
|
this.currentReadRowNum.set(0);
|
|
}
|
|
|
|
public void closeReader() throws IOException {
|
|
if(this.reader != null) {
|
|
this.reader.close();
|
|
this.file = null;
|
|
this.currentReadRowNum.set(0);
|
|
} else {
|
|
// ignore null reader
|
|
}
|
|
}
|
|
}
|