Hey, everybody. Need some help again.

I am writing a library in J# to be later linked to a C# program that needs to read data from a zip file. However, it needs to be able to read any entry in the zip file at any time without iterating through the whole file, and decompressing the file beforehand is not an option. So far, I've got this:

Code:
public static void ReadFile(String ZipName, String FileName)
	{
		ZipFile zf = null;
		try 
		{
			zf=new ZipFile(ZipName);
			ZipEntry ze=zf.getEntry(FileName);
			if(ze==null)
				return;
			BufferedReader zr=new BufferedReader(new InputStreamReader(zf.getInputStream(ze)));
			while (zr.ready())
			{
				System.out.println(zr.readLine());
			}
			zr.close();
		}
		catch (IOException ioe) 
		{

		} 
		finally 
		{
			if (zf != null) 
			{
				try { zf.close(); } 
				catch (IOException ioe) {}
			}
		}
	}
but when it tries to read from a entry nested into a folder zr.readLine() returns null and the loop becomes infinite. If anyone has encountered similar code and can shed some light onto this problem, I'd be very appreciative.