2011-03-09 174 views
0

我在網絡上發現此源代碼並對其進行了一些修改。但是我收到一個錯誤:java.io.FileNotFoundException /data/datafile.zip。 我該怎麼做才能讓它運行?我必須先創建文件嗎?當我嘗試下載文件時出現錯誤

感謝,矽格

private Thread checkUpdate = new Thread() { 
    public void run() { 
     try { 
      long startTime = System.currentTimeMillis(); 
      Log.d("Zip Download", "Start download"); 
      File file = new File(Environment.getDataDirectory(), "datafil.zip"); 
      Log.d("Zip Download", file.getAbsolutePath()); 

      URL updateURL = new URL("http://dummy.no/bilder/bilder/XML_Item_Expo_01.zip"); 
      URLConnection conn = updateURL.openConnection(); 
      InputStream is = conn.getInputStream(); 
      BufferedInputStream bis = new BufferedInputStream(is); 
      ByteArrayBuffer baf = new ByteArrayBuffer(50); 

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

      /* Convert the Bytes read to a String. */ 
      FileOutputStream fos = new FileOutputStream(file); 
      fos.write(baf.toByteArray()); 
      fos.close(); 
      Log.d("Zip Download", "download ready in" + ((System.currentTimeMillis() - startTime)/1000) + " sec"); 
     } catch (Exception e) { 
      Log.d("Zip Download", "Error: " + e); 
     } 
    } 
}; 

回答

1

Environment.getDataDirectory()不回,你可以將文件的路徑。您應該使用以下其中一種方法:

  • Environment.getExternalStorageDirectory()爲您提供了外部存儲(SD卡)的路徑。
  • getFilesDir()來自活動或其他上下文。給予應用程序的內部文件存儲

路徑您也可以撥打openFileOutput()一個字符串的文件名(沒有路徑,只是文件),它會在一個鏡頭供您使用打開FileOutputStream中,並創建該文件的所有。

希望有助於!

相關問題