2012-06-23 98 views
2

我在我的web空間上有一個數據庫。現在我想下載這個數據庫並將其複製到我的/數據庫文件夾中。它複製了數據庫的一些部分,但我無法訪問它。隨着「根資源管理器」,它說:「錯誤 - 當打開數據庫時出現錯誤無法打開數據庫文件」將數據庫從服務器複製到Android

private final static String DB_NAME = "werweisswasquiz"; 
private final static String DB_PATH = "data/data/my-package-name/databases/"; 


try { 
     // Log.d(TAG, "downloading database"); 
     URL url = new URL("http://unnediger.bplaced.net/Files/mydbfile"); 
    URLConnection ucon = url.openConnection(); 
    InputStream is = ucon.getInputStream(); 
    BufferedInputStream bis = new BufferedInputStream(is); 

    ByteArrayBuffer baf = new ByteArrayBuffer(1024); 
    int current = 0; 
    while ((current = bis.read()) != -1) { 
     baf.append((byte) current); 
    } 

    /* Convert the Bytes read to a String. */ 
    OutputStream myOutput = new FileOutputStream(DB_PATH+DB_NAME); 
    myOutput.write(baf.toByteArray()); 
    myOutput.flush(); 
    myOutput.close(); 
    bis.close(); 
    is.close(); 
} catch (Exception e) { 
    Log.e("DOWNLOAD", "downloadDatabase Error: ", e); 
    return false; 
} 
+0

文件是否加密? – Rajesh

+0

是某些列被加密。但不是整個數據庫。 – androiddevjedi

+0

數據庫也無法從SQLite Manager打開。所以我猜想,您必須解密數據庫或使用您用於加密內容的解密方法,以便在Android中訪問它們。 – Rajesh

回答

6

所以,我終於找到了我自己的解決方案。

服務器認爲文件「mydbfile」是一個txt文件,所以我爲sqlite數據庫添加了擴展名「.db」。現在它完美地工作。

相關問題