2016-03-04 2 views
0

Я пишу читатель комиксов для Android. Я хотел, чтобы мой читатель читал cbr-файлы (файлы cbr - это только файлы rar). Поэтому я посмотрел и нашел Raroscope. Мне понравилось, потому что он имеет те же функции, что и ZipFile и ZipEntry. Но моя проблема в том, что я не могу использовать его для получения входного потока из файла rar. Мне было интересно, есть ли что-то там, которое я мог бы использовать с Raroscope, чтобы получить поток ввода из файла rar.InputStream для файлов Rar

это как мой код сканирует RAR

public class ReadCBR { 

String mFileName; 
List<String> mPages; 
RARFile mCBR; 

public ReadCBR(){ 

} 

public void read(String filename){ 
    mFileName = filename; 
    try { 
     mCBR = new RARFile(filename); 
     mPages = new ArrayList(); 
     Enumeration<? extends RAREntry> entries = mCBR.entries(); 

     while (entries.hasMoreElements()){ 
      RAREntry entry = entries.nextElement(); 
      mPages.add(entry.getName()); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

это то, что я хочу быть в состоянии сделать

public Bitmap getPage(int pageNum, int maxLength){ 
    Bitmap bitmap = null; 

    InputStream in = null; 
    BitmapFactory.Options opt = new BitmapFactory.Options(); 
    in = mCBR.getInputStream(mPages.get(pageNum)) 


} 

ответ

0

Вы можете использовать junrar ручки RAR файлов в Java. После извлечения вы можете получить входной поток в файл.

+0

Я пробовал junrar Я получаю ошибки зависимостей с помощью android. Мне сказали, что он не работает с журналом Android. –

+0

Также я хотел бы сначала отсканировать файлы. Я не хочу распаковывать, пока не потребуется растровое изображение. таким образом я сохраняю память. –

0

mCBR = новый RARFile (имя файла);

Я думаю, что вы передали имя файла только в качестве параметра, если тогда вам следует передать файловый объект или абсолютный путь к файлу, а не только имя файла.

т.е.

Предположим, что ваш файл хранится в корневом каталоге хранения,

файл File = новый файл (Environment.getExternalStorageDirectory(), Filename);

mCBR = новый RARFile (файл); // мимо файла

ИЛИ

mCBR = новый RARFile (file.getAbsolutePath()); // прохождение абсолютного пути

+0

Я не уверен, что вы пытаетесь сказать. ive получил его для работы с использованием junrar, но его очень медленный слишком медленный для приложения, которое я пытаюсь сделать –

Смежные вопросы