【发布时间】:2013-06-30 21:51:06
【问题描述】:
我有这段代码,它从特定 URL 下载 .jar 文件并将其放入特定文件夹。下载的 jar 文件是游戏的 mod,这意味着它必须被下载并正确运行而不会损坏。
问题是,每次我尝试下载文件时,它都会以某种方式损坏并在加载时导致错误。
这是我的下载代码:
final static int size=1024;
public static void downloadFile(String fAddress, String localFileName, String destinationDir, String modID) {
OutputStream outStream = null;
URLConnection uCon = null;
InputStream is = null;
try {
URL Url;
byte[] buf;
int ByteRead,ByteWritten=0;
Url= new URL(fAddress);
outStream = new BufferedOutputStream(new
FileOutputStream(destinationDir+"/"+localFileName));
uCon = Url.openConnection();
is = uCon.getInputStream();
buf = new byte[size];
while ((ByteRead = is.read(buf)) != -1) {
outStream.write(buf, 0, ByteRead);
ByteWritten += ByteRead;
}
System.out.println("Downloaded Successfully.");
System.out.println("File name:\""+localFileName+ "\"\nNo ofbytes :" + ByteWritten);
System.out.println("Writing info file");
WriteInfo.createInfoFile(localFileName, modID);
}catch (Exception e) {
e.printStackTrace();
}
finally {
try {
is.close();
outStream.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
你知道这段代码有什么问题吗?
【问题讨论】:
-
附注:编码约定规定变量名应以小写字母开头。
-
这段代码没有明显的问题。下载的文件以什么方式损坏? (长度错误,字节被替换,..)你能确定不是服务器破坏了文件吗?
-
我知道该文件在服务器上很好,因为我尝试使用我的网络浏览器手动下载并安装它。当我尝试时,它工作得很好