URLから.zipファイルをダウンロードし、各ファイルを.zipファイルからバイト配列に変換するアプリケーションがあります。現時点では、ファイルをダウンロードして .zip ファイルを読み取り、.zip ファイル全体をバイトに変換できますが、.zip 内の各ファイルをバイト配列に変換することに失敗しました。どんな助けでも感謝します。以下にコードを添付しました。
try {
URL url = new URL(Url);
//create the new connection
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//set up some things on the connection
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
//and connect!
urlConnection.connect();
//set the path where we want to save the file
//in this case, going to save it on the root directory of the
//sd card.
InputStream inputStream = urlConnection.getInputStream();
dis = new DataInputStream(new BufferedInputStream(inputStream));
System.out.println("INput connection done>>>>>");
zis = new ZipInputStream(new BufferedInputStream(dis));
String targetFolder="/sdcard/";
System.out.println("zip available is"+zis.available());
int extracted = 0;
while ((entry = zis.getNextEntry()) != null) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count;
while ((count = zis.read(buffer)) != -1) {
baos.write(buffer, 0, count);
}
String filename = entry.getName();
System.out.println("File name is>>"+filename);
byte[] bytes = baos.toByteArray();
System.out.println("Bytes is >>>>"+bytes.toString());
// do something with 'filename' and 'bytes'...
zis.closeEntry();
extracted ++;
}
zis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}