1 package org.readium.r2_streamer.model.container;
3 import java.io.BufferedReader;
5 import java.io.FileInputStream;
6 import java.io.IOException;
7 import java.io.InputStream;
8 import java.io.InputStreamReader;
10 import java.util.concurrent.Callable;
11 import java.util.concurrent.ExecutionException;
12 import java.util.concurrent.ExecutorService;
13 import java.util.concurrent.Executors;
14 import java.util.concurrent.Future;
17 * Created by Shrikant Badwaik on 24-Jan-17.
20 public class DirectoryContainer implements Container {
21 private final String TAG = "DirectoryContainer ";
22 private String rootPath;
24 public DirectoryContainer(String rootPath) {
25 this.rootPath = rootPath;
26 File epubDirectoryFile = new File(rootPath);
27 if (!epubDirectoryFile.exists()) {
28 System.out.println(TAG + " No such directory exists at path: " + epubDirectoryFile);
33 public String rawData(String relativePath) throws NullPointerException {
34 String filePath = rootPath.concat(relativePath);
35 File epubFile = new File(filePath);
37 if (epubFile.exists()) {
38 System.out.println(TAG + relativePath + " File exists at given path");
41 InputStream is = new FileInputStream(epubFile);
42 BufferedReader br = new BufferedReader(new InputStreamReader(is));
43 StringBuilder sb = new StringBuilder();
46 while ((line = br.readLine()) != null) {
47 sb.append(line); //.append('\n');
51 } catch (IOException e) {
54 } else if (!epubFile.exists()) {
55 System.out.println(TAG + " No such file exists at given path: " + relativePath);
61 public int rawDataSize(String relativePath) {
62 String filePath = rootPath.concat(relativePath);
63 File epubFile = new File(filePath);
64 return ((int) epubFile.length());
68 public List<String> listFiles() {
73 public InputStream rawDataInputStream(final String relativePath) throws NullPointerException {
75 /*String filePath = rootPath.concat(relativePath);
76 File directoryFile = new File(filePath);
77 InputStream inputStream = new FileInputStream(directoryFile);
80 Callable<InputStream> callable = new Callable<InputStream>() {
82 public InputStream call() throws Exception {
83 String filePath = rootPath.concat(relativePath);
84 File directoryFile = new File(filePath);
85 return new FileInputStream(directoryFile);
88 ExecutorService executorService = Executors.newCachedThreadPool();
89 Future<InputStream> future = executorService.submit(callable);
91 } catch (InterruptedException | ExecutionException e) {