Java Rar文件的输入流
我正在为android写一本漫画书。我想让我的读者阅读cbr文件(cbr文件只是rar文件)。于是我看了看,发现了。我喜欢它,因为它有很多与ZipFile和ZipEntry相同的功能。但我的问题是我不能用它从rar文件中获取inputstream。我想知道是否有什么东西我可以使用Raroscope从rar文件中获取输入流 这就是我的代码扫描rar的方式Java Rar文件的输入流,java,android,rar,Java,Android,Rar,我正在为android写一本漫画书。我想让我的读者阅读cbr文件(cbr文件只是rar文件)。于是我看了看,发现了。我喜欢它,因为它有很多与ZipFile和ZipEntry相同的功能。但我的问题是我不能用它从rar文件中获取inputstream。我想知道是否有什么东西我可以使用Raroscope从rar文件中获取输入流 这就是我的代码扫描rar的方式 public class ReadCBR { String mFileName; List<String> mPages; 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();
}
}
您可以在java中使用句柄rar文件。提取后,您可以将输入流获取到文件中。mCBR=new-RARFile(filename)
我认为您只将文件名作为参数传递,如果是这样,那么您应该传递文件对象或文件的绝对路径,而不仅仅是文件名
i、 e
假设您的文件存储在存储的根目录中
File File=新文件(Environment.getExternalStorageDirectory(),fileName)
mCBR=新文件(文件);//文件传递
或
mCBR=新RARFile(file.getAbsolutePath());//通过绝对路径我尝试过junrar,但在android上出现依赖错误。我被告知它不能与android日志一起工作。而且我想先扫描文件。在需要位图之前,我不想解压缩。这样我就节省了内存。我不知道你想说什么。我用junrar让它工作,但是它非常慢,对于我正在尝试的应用程序来说太慢了
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))
}