package org.carelife.creader.bookfile; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import org.carelife.creader.dao.UrlHelper; import org.carelife.creader.util.DesUtil; public class Pre_BookPageFactory { private File book_file = null; private int m_mbBufLen = 0; private MappedByteBuffer m_mbBuf = null; private boolean isopenfile = false; public Pre_BookPageFactory() { // TODO Auto-generated constructor stub } public void openbook(String strFilePath) throws Exception { DesUtil ds = new DesUtil(UrlHelper.key_string); File temp_f = new File(strFilePath); File temp_dir = new File(temp_f.getParent()+"/temp/"); if(!temp_dir.exists()){ temp_dir.mkdirs(); } ds.decryptFile(strFilePath, temp_dir.getPath()+"/"+temp_f.getName()+".ds"); book_file = new File(temp_dir.getPath()+"/"+temp_f.getName()+".ds"); long lLen = book_file.length(); m_mbBufLen = (int) lLen; m_mbBuf = new RandomAccessFile(book_file, "r").getChannel().map( FileChannel.MapMode.READ_ONLY, 0, lLen); // book_file.delete(); isopenfile = true; } public boolean get_isopenfile(){ return isopenfile; } public void set_null(){ if(m_mbBuf != null){ m_mbBuf.clear(); } isopenfile = false; return; } public MappedByteBuffer get_m_mbBuf(){ return m_mbBuf; } public int get_m_mbBufLen(){ return m_mbBufLen; } public File getBookFile(){ return book_file; } public void chapter_copy(BookPageFactory book){ // if(m_mbBuf != null){ // m_mbBuf.clear(); // } m_mbBuf = book.get_m_mbBuf(); m_mbBufLen = book.get_m_mbBufLen(); if(book_file != null){ book_file.delete(); } book_file = book.getBookFile(); isopenfile = true; return; } public void set_m_mbBuf(MappedByteBuffer b){ if(m_mbBuf != null){ m_mbBuf.clear(); } m_mbBuf = b; return; } public void set_m_mbBufLen(int l){ m_mbBufLen = l; return ; } public void Destory(){ if(m_mbBuf != null){ m_mbBuf.clear(); m_mbBuf = null; } m_mbBufLen = 0; if(book_file != null){ book_file.delete(); book_file = null; } } }