Hallo, ich bin neu in Java und ich versuche, einen Byte-Stream mit Deflater
in java.util.zip
zu komprimieren. Ich folgte ein Beispiel aus Oracle site.Wie Deflater in java.util.zip zu verwenden
try {
// Encode a String into bytes
String inputString = "blahblahblah";
byte[] input = inputString.getBytes("UTF-8");
// Compress the bytes
byte[] output = new byte[100];
Deflater compresser = new Deflater();
compresser.setInput(input);
compresser.finish();
int compressedDataLength = compresser.deflate(output);
compresser.end();
// Decompress the bytes
Inflater decompresser = new Inflater();
decompresser.setInput(output, 0, compressedDataLength);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
// Decode the bytes into a String
String outputString = new String(result, 0, resultLength, "UTF-8");
} catch(java.io.UnsupportedEncodingException ex) {
// handle
} catch (java.util.zip.DataFormatException ex) {
// handle
}
Wenn ich diesen Code ausführen es gibt mir eine Fehlermeldung, setInput()
, finish()
, deflate()
und end()
ist nicht definiert. Hier ist die Fehlermeldung
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method setInput(byte[]) is undefined for the type Deflater
The method finish() is undefined for the type Deflater
The method deflate(byte[]) is undefined for the type Deflater
The method end() is undefined for the type Deflater
at Deflater.main(Deflater.java:16)
ich java.util.zip
importiert und sah in der Dokumentation in Oracle site.It sagt diese Methoden bestehen.
Ich kann nicht herausfinden, wo das Problem liegt. Kann jemand helfen?
Ich führte den exakt gleichen Code online auf Tutorials Punkt und es funktionierte perfekt, Die Methoden sind in der Deflate-Klasse vorhanden. Gibt es einen Fehler in der Java-Konfiguration, versuchen Sie bitte, Inflate und Deflate separat zu importieren. –