package pspnetparty.lib;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import pspnetparty.lib.constants.AppConstants;
public class FileContentCache {
private File file;
private String content;
private long cacheFileSize;
private long cacheTimestamp;
public void setFile(String fileName) {
file = null;
if (!Utility.isEmpty(fileName)) {
file = new File(fileName);
if (!file.isFile())
file = null;
}
content = "";
cacheFileSize = cacheTimestamp = 0L;
}
public String getContent() {
if (file == null || !file.isFile())
return "";
long fileSize = file.length();
long lastModified = file.lastModified();
if (fileSize != cacheFileSize || cacheTimestamp != lastModified) {
BufferedReader br = null;
try {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, AppConstants.CHARSET);
br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append(AppConstants.NEW_LINE);
}
if (sb.length() > 0)
sb.delete(sb.length() - AppConstants.NEW_LINE.length(), sb.length());
content = sb.toString();
cacheFileSize = fileSize;
cacheTimestamp = lastModified;
} catch (Exception e) {
content = "";
cacheFileSize = cacheTimestamp = 0L;
} finally {
try {
if (br != null)
br.close();
} catch (IOException e) {
}
}
}
return content;
}
}