ZipFile - Comportamento estranho ao descompactar arquivo (totalcross) [Resolvido]

Olá,

Estou tentando descompactar um arquivo zip, que possui vários arquivos de texto.
Eu até consigo extrair os arquivos, o problema é que uma linha do arquivo é descompactada de forma errada.
No compactado a linha 142 está da seguinte forma:
P00544501024316923/02/200824/05/20100140001185

Agora ao descompactar o arquivo a linha é descompactada como:
P00544501024316923/0054402/200824/05/20100140001185

Eu nao consigo entender o porque da diferença. Segue abaixo o codigo utilizado para descompactar o arquivo.

import totalcross.io.DataStream;
import totalcross.io.File;
import totalcross.io.IOException;
import totalcross.io.Stream;
import totalcross.util.zip.ZipEntry;
import totalcross.util.zip.ZipException;
import totalcross.util.zip.ZipFile;

public class FileUtil {
		
	public static void main(String[] args) {
		try {
			extraiZip("C:\\Teste\\importados.zip");
		} catch (ZipException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	public static void extraiZip(String arquivoZip) throws ZipException, IOException {
		ZipFile zip = null;
		Stream is = null;
		DataStream ds = null;
		byte[] buffer = new byte[2048];
		zip = new ZipFile(arquivoZip);
		ZipEntry[] ze = zip.entries();

		for (int i = 0; i < ze.length; i++) {
			ZipEntry entrada = (ZipEntry) ze[i];
			File novoArquivo = new File("C:\\Teste\\" + entrada.getName(), File.CREATE);
			// lê o arquivo do zip e grava em disco
			is = zip.getEntryStream(entrada.getName());
			ds = new DataStream(novoArquivo);
			
			int bytesRead = is.readBytes(buffer, 0, buffer.length);			
			while (bytesRead != -1) {
				ds.writeBytes(buffer, 0, buffer.length);
				bytesRead = is.readBytes(buffer, 0, buffer.length);
			}
			novoArquivo.flush();
			novoArquivo.close();
		}
		zip.close();
	}
	
}

O estranho é que isso só acontece em uma linha.
Desde já agradeço qualquer ajuda…

Obrigado
Diego

:oops:
Achei o erro…

            int n;
            while ((n = is.readBytes(buffer, 0, 1024)) > 0)
               ds.writeBytes(buffer, 0, n);