Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6166649
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T22:22:25+00:00 2026-05-23T22:22:25+00:00

this is my first question, although I’ve already used so many tips from Stack

  • 0

this is my first question, although I’ve already used so many tips from Stack Overflow. But for this situation I haven’t found a solution yet.

Here’s the situation: I have a zipped file and I want to read a specific file and put its content into a String variable, that will be returned and put into a TextView in Android. I don’t want the file to be written to sdcard, I just want to perform a memory operation.

For example, inside db.zip I have a file named packed.txt, which content is “Stack á é ç”. The returned String in my method shows “83 116 97 99 107 32 195 161 32 (…)” which are the UTF-8 values for the characters. I tried so far converting’em to a human-readble form, but no success. Tried InputStreamReader but I couldn’t make a correct use of it. My source-code is below.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import android.util.Log;

/** 
 * 
 * @author jon 
 */ 
public class Decompress { 
  private String _zipFile; 
  private String _location;

  public Decompress(String zipFile, String location) { 
    _zipFile = zipFile; 
    _location = location; 

    _dirChecker(""); 
  } 

  public String unzip(String desiredFile) { 

      String strUnzipped = ""; 

      try  { 
      FileInputStream fin = new FileInputStream(_zipFile); 
      ZipInputStream zin = new ZipInputStream(fin); 
      ZipEntry ze = null; 
      while ((ze = zin.getNextEntry()) != null) { 
        Log.v("Decompress", "Unzipping " + ze.getName()); 

        if(ze.isDirectory()) { 
          _dirChecker(ze.getName()); 
        } else { 

          //FileOutputStream fout = new FileOutputStream(_location + ze.getName());

            /**** Changes made below ****/  
              if (ze.getName().toString().equals(desiredFile)) {                  
                byte[] bytes = new byte[(int) ze.getSize()];
            if (zin.read(bytes, 0, bytes.length) == bytes.length) {
              strUnzipped = new String(bytes, "UTF-8");
            }
            else {
              strUnzipped = "Read error...";
            }

            /*** REMOVED
            if (ze.getName() == desiredFile) {
            for (int c = zin.read(); c != -1; c = zin.read()) {
              strUnzipped += c;
              //fout.write(c); 
            } */
          }

          zin.closeEntry(); 
          //fout.close(); 
        } 

      } 
      zin.close(); 
    } catch(Exception e) { 
      Log.e("Decompress", "unzip", e); 
    }

    return strUnzipped;

  } 

  private void _dirChecker(String dir) { 
    File f = new File(_location + dir); 

    if(!f.isDirectory()) { 
      f.mkdirs(); 
    } 
  } 
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T22:22:26+00:00Added an answer on May 23, 2026 at 10:22 pm

    Sorry for my initial posting of this …. ran right over your paragraph stating you had tried this.

    You can create the InputStreamReader with a charset of “UTF-8” which will automatically convert the input data into the correct characters for you.

    while ((ze = zin.getNextEntry()) != null) { 
        Log.v("Decompress", "Unzipping " + ze.getName()); 
        if(ze.isDirectory()) { 
            _dirChecker(ze.getName()); 
        } else {
            if (ze.getName() == desiredFile) {
                byte[] bytes= new byte[ze.getSize()];
                zin.read(bytes, 0, bytes.length);
                strUnzipped= new String( bytes, "UTF-8" );
                /* Removing this as it is easier to just read all the bytes in at once
                InputStreamReader isr= new InputStreamReader(zin, "UTF-8");
                char c= 0;
                for (char c = isr.read(); c != -1; c = isr.read()) {
                strUnzipped += c;
                } 
                */
            }
            zin.closeEntry(); 
        }
    } 
    

    Please try the above and see how it works out.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This is a really basic question but this is the first time I've used
I know this question might sound a little cheesy but this is the first
This question might not seem programming related at first, but let me explain. I'm
So this question will get technical – eventually – but first check out Hanselminutes
This is a follow on from my previous question although this is about something
My first question is this although I doubt if it is possible. However, if
this is my first question here on SO although I've been lurking for quite
this is my first question to stackoverflow so here it goes... I use cruise
this is my first question here so I hope I can articulate it well
This is my first question so please be patient :) Background: I'm implementing an

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.