package foundation.version; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import foundation.dao.IFileReader; import foundation.json.JObjectReader; public class VersionedFileReader implements IFileReader { private VersionIndex index; public VersionedFileReader(VersionIndex index) { this.index = index; } @Override public JObjectReader getJSONObjectReader() throws Exception { String path = index.getPath(); File file = new File(path); if (!file.exists()) { return new JObjectReader(); } StringBuilder body = new StringBuilder(); FileInputStream inputStream = new FileInputStream(file); try { BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8")); try { String line; while ((line = reader.readLine()) != null) { body.append(line); } } finally { reader.close(); } } finally { try { inputStream.close(); } catch (IOException e) { } } String content = body.toString(); JObjectReader result = new JObjectReader(content); return result; } }