R
RED-BARON
Fortgeschrittenes Mitglied
- 19
Hallo Ihrs,
eben erst angemeldet und schon eine Frage
rc wird der Wert: 2 zugewiesen, deflate() liefert die Anzahl Zeichen im
Ausgabepuffer zurück. 2 Zeichen stehen auch im Puffer, nur kann es sich
dabei nicht um die komprimierten Daten handeln.
edit:
die Prüfung der eingelesenen Zeichen ergibt rc = 24, stimmt also.
Der Ausgabepuffer sollte auf jeden Fall hinreichend groß sein. Wo steckt
der Fehler ?
Vielen Dank im Voraus.
Grüße, RB
eben erst angemeldet und schon eine Frage
Code:
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]import[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] java.util.zip.Deflater;[/SIZE]
class compress [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]extends[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Activity {[/SIZE]
[SIZE=2][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]private[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Deflater [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];[/SIZE]
[LEFT][SIZE=2][COLOR=#646464][SIZE=2][COLOR=#646464]@Override[/COLOR][/SIZE][/COLOR][/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] onCreate(Bundle savedInstanceState) {[/SIZE][/LEFT]
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]super[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2].onCreate(savedInstanceState);[/SIZE][/LEFT]
[LEFT][SIZE=2]setContentView(R.layout.[/SIZE][I][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]main[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2]);[/SIZE][/LEFT]
[LEFT][SIZE=2]String in = [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Hallo, bitte komprimieren"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]byte[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][] out= [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]byte[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][1024];[/SIZE][/LEFT]
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]try[/COLOR][/SIZE][/COLOR][/SIZE][/B]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Deflater([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].[/SIZE][I][U][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]DEFAULT_COMPRESSION[/COLOR][/SIZE][/COLOR][/SIZE][/U][/I][SIZE=2]);[/SIZE][/LEFT]
[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]// neu[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].setStrategy([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].[/SIZE][I][U][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]DEFAULT_STRATEGY[/COLOR][/SIZE][/COLOR][/SIZE][/U][/I][SIZE=2]);[/SIZE]
[LEFT][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].setInput(in.getBytes());[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]int[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] [U]rc[/U] = [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].deflate(out);[/SIZE][/LEFT]
[SIZE=2]rc = [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].getTotalIn(); // hinzugefügt[/SIZE]
[LEFT][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]// geändert[/COLOR][/SIZE][/COLOR][/SIZE]
[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDeflater[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].end();[/SIZE]
[SIZE=2]}[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]catch[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2](Exception e)[/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2]} [/SIZE][/LEFT]
[SIZE=2]}[/SIZE]
[/SIZE]
rc wird der Wert: 2 zugewiesen, deflate() liefert die Anzahl Zeichen im
Ausgabepuffer zurück. 2 Zeichen stehen auch im Puffer, nur kann es sich
dabei nicht um die komprimierten Daten handeln.
edit:
die Prüfung der eingelesenen Zeichen ergibt rc = 24, stimmt also.
Der Ausgabepuffer sollte auf jeden Fall hinreichend groß sein. Wo steckt
der Fehler ?
Vielen Dank im Voraus.
Grüße, RB
Zuletzt bearbeitet: