G
Guest
Gast
Hallo zusammen,
ich habe ein kleines, plattformabhängiges Problem. Auf einem FTP Server liegt ein Zip, in dem Zip eine Textdatei.
Verwende die FTP Componenten aus apache commons net und für Zip das Standard java.util.zip
Auf einem Windows System wird der Inhalt der Textdatei im Zip korrekt ausgegeben, unter Mac OS.X gabs Probleme mit den Umlauten, daher habe ich beim InputStreamReader das "ISO-8859-1" hinzugefügt, nun funktioniert das.
Eigentliches Problem, egal ob mit oder ohne ISO-8859-1":
Auf Windows ausgeführt klappt alles prima, auf Mac OS.X wird falsch dekomprimiert. Die ersten paar Zeilen sind noch fehlerfrei, dann kommen immer mehr Fehler und die Dekomprimierung wird langsamer bis sie schließlich still steht.
Bei kleineren Files bekomme ich, wenn das Ende erreicht wird zusätzlich noch die Fehlermeldung
java.util.zip.ZipException: invalid entry size (expected 1481730 but got 1481779 bytes)
ich habe ein kleines, plattformabhängiges Problem. Auf einem FTP Server liegt ein Zip, in dem Zip eine Textdatei.
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URLDecoder;
import java.text.DateFormat;
import java.util.Date;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class FTPUpdater {
public FTPUpdater(String host, String username, String password) {
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect(host);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
ZipInputStream zipStream = new ZipInputStream(ftpClient.retrieveFileStream(filename + ".zip"));
ZipEntry entry;
while ((entry = zipStream.getNextEntry()) != null) {
if (!entry.isDirectory()) {
System.out.println("Extracting file: " + entry.getName()
+ " " + df.format(new Date(entry.getTime())));
BufferedReader in = new BufferedReader(new InputStreamReader(zipStream,"ISO-8859-1"));
for (String strLine; (strLine = in.readLine()) != null; strLine.length()) {
System.out.println(strLine);
}
}
}
zipStream.close();
ftpClient.logout();
ftpClient.disconnect();
Verwende die FTP Componenten aus apache commons net und für Zip das Standard java.util.zip
Auf einem Windows System wird der Inhalt der Textdatei im Zip korrekt ausgegeben, unter Mac OS.X gabs Probleme mit den Umlauten, daher habe ich beim InputStreamReader das "ISO-8859-1" hinzugefügt, nun funktioniert das.
Eigentliches Problem, egal ob mit oder ohne ISO-8859-1":
Auf Windows ausgeführt klappt alles prima, auf Mac OS.X wird falsch dekomprimiert. Die ersten paar Zeilen sind noch fehlerfrei, dann kommen immer mehr Fehler und die Dekomprimierung wird langsamer bis sie schließlich still steht.
Bei kleineren Files bekomme ich, wenn das Ende erreicht wird zusätzlich noch die Fehlermeldung
java.util.zip.ZipException: invalid entry size (expected 1481730 but got 1481779 bytes)