还是个问题吗java.util.zip.ZipException:未找到中心目录项
作为免责声明,我已经看到了帖子和链接到它的帖子 我有一个托管在服务器上的文件,它是一个已存档的文件,我正在尝试使用方法将其取消存档。当文件预下载到设备上,我在应用程序中打开并取消归档时,通过还是个问题吗java.util.zip.ZipException:未找到中心目录项,java,android,encoding,archive,Java,Android,Encoding,Archive,作为免责声明,我已经看到了帖子和链接到它的帖子 我有一个托管在服务器上的文件,它是一个已存档的文件,我正在尝试使用方法将其取消存档。当文件预下载到设备上,我在应用程序中打开并取消归档时,通过下载的中的意图过滤器,没有任何问题。但是,当我从应用程序中的服务器下载它,然后尝试解压缩它时,我在这一行的标题中得到错误: ZipFile zipfile = new ZipFile(archive); 其中archive是指向我下载的存档文件的文件。我用来下载归档文件的代码如下: String u
下载的中的意图过滤器,没有任何问题。但是,当我从应用程序中的服务器下载它,然后尝试解压缩它时,我在这一行的标题中得到错误:
ZipFile zipfile = new ZipFile(archive);
其中archive
是指向我下载的存档文件的文件。我用来下载归档文件的代码如下:
String urlPath = parameters[0], localPath = parameters[1];
try
{
URL url = new URL(urlPath);
URLConnection connection = url.openConnection();
connection.addRequestProperty("Accept-Encoding", "gzip");
connection.connect();
int fileLength = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new BufferedOutputStream(new FileOutputStream(localPath));
byte data[] = new byte[1024];
long total = 0;
int count;
while((count = input.read(data)) != -1)
{
total += count;
publishProgress((int)total * 100 / fileLength);
output.write(data);
}
output.flush();
output.close();
input.close();
我最近根据我在顶部引用的帖子添加了编码类型,但是我仍然得到相同的错误。任何帮助都会很好
我想澄清一下:
- 我有一个档案
- 当文件从外部下载并在我的应用程序中打开/未归档时,可以取消归档
- 当我下载归档文件并尝试取消归档时,收到错误
java.util.zip.ZipException:centraldirectory Entry not found
我最好的猜测是,这是我下载的一个问题。但是,尽管如此,我不知道我做错了什么。您没有正确复制下载内容。你必须使用
output.write(data, 0, count);
否则,您将向文件中写入任意垃圾邮件。您没有正确复制下载内容。你必须使用
output.write(data, 0, count);
否则,您将在文件中写入任意垃圾。真的吗?文档说write(buffer)
相当于write(buffer,0,buffer.length)。
@RileyE当然是,但两者都不等同于我发布的代码。你需要去阅读read()的文档。哦,对了。我注意到它没有读取完整的字节大小。我不知道我怎么没听到。说得好。谢谢你,好先生!真正地文档说write(buffer)
相当于write(buffer,0,buffer.length)。
@RileyE当然是,但两者都不等同于我发布的代码。你需要去阅读read()的文档。哦,对了。我注意到它没有读取完整的字节大小。我不知道我怎么没听到。说得好。谢谢你,好先生!