Jeg har besluttet mig for at komprimere data, men jeg er stødt ind i
følgende problem. SAXBuilder.build kræver en InputStream, men hvordan
får jeg konverteret BufferedOutputStream fra udpakningsdelen til en
inputstream? Nedenstående er den kode jeg har indtil videre. Det er en
applet jeg skal anvende det i, men i nedenstående har jeg valgt at
eksperimentere med et applikation. Nogen som kan hjælpe mig videre?
import javax.swing.text.Document;
import java.net.URL;
import java.io.InputStream;
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;
public class ZipTestApplication {
final static int BUFFER_SIZE = 1024;
public static void main(String[] args) {
try {
// Henter fil fra URL.
URL url = new URL("
http://localhost/zip.file");
InputStream inputStream = url.openStream();
// Udpakker fil.
ZipInputStream zipInputStream = new ZipInputStream(inputStream);
ZipEntry zipEntry;
int byteCount;
byte buffer[] = new byte[BUFFER_SIZE];
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
FileOutputStream fileOutputStream = new FileOutputStream
(zipEntry.getName());
BufferedOutputStream bufferedOutputStream = new
BufferedOutputStream(fileOutputStream, BUFFER_SIZE);
while ((byteCount = zipInputStream.read(buffer, 0, BUFFER_SIZE))
!= -1) {
bufferedOutputStream.write(buffer, 0, BUFFER_SIZE);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
}
zipInputStream.close();
/*
// Læser XML-dokument.
SAXBuilder saxBuilder = new SAXBuilder();
Document document = saxBuilder.build() // Kræver InputStream,
Reader m.fl.
Element rootElement = document.getRootElement();
Element dataElement = rootElement.getChild("data");
if (dataElement != null) {
String value = dataElement.getChild("value").getText();
System.out.println(value);
}
*/
} catch(Exception e) {
e.printStackTrace();
}
}
}