我指的是以下代码从特定 URL 下载文件。
public class FileFromServerExample extends Activity {
static String PACKAGE_NAME;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
PACKAGE_NAME = getApplicationContext().getPackageName();
File folder = new File("/data/data/"
+ FileFromServerExample.PACKAGE_NAME + "/ePub/");
boolean created = folder.isDirectory();
if (!created) {
folder.mkdir();
}
File file = new File(folder, "Sample.epub");
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
Downloader
.DownloadFile(
"http://www.google.co.in/url?sa=t&rct=j&q=sample%20epub%20filetype%3Aepub&source=web&cd=2&ved=0CFMQFjAB&url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F1177388%2Fflagship_july_4_2010_flying_island_press.epub&ei=i5gHUIOWJI3RrQeGro3YAg&usg=AFQjCNFPKsV-tieF4vKv7BXYmS-QEvd7Uw",
file);
}
}
下载器.java
public class Downloader {
public static void DownloadFile(String fileURL, File directory) {
try {
FileOutputStream f = new FileOutputStream(directory);
URL u = new URL(fileURL);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
}
f.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我正在到达Sample.epub
想要的位置。
但是当我尝试打开该文件时,我收到一条错误消息,指出Not a valid zip file。
我尝试使用各种 URL,Pdf
而不是ePub
(它给出文件损坏错误),但同样的问题仍然存在。
但是,当我尝试从此示例链接下载一个简单的文本文件时,它可以正常工作。
所以按照常识,这个下载的URLePub
似乎可能被破坏了,但ePub
如果我从我的 PC 浏览器访问链接,我成功下载的情况并非如此。
但是,当我尝试ePub
在 android 应用程序中从此链接下载时,它不起作用。
任何想法,我要去哪里错了?任何帮助表示赞赏。