N
Nemesis
Gast
Hallo,
ich bin noch ziemlicher Anfänger in Java und hab jetzt ein Problem mit Input/Output Streams.
Ich habe hier 2 Methoden, die eine XML Datei und ein Bild erzeugen; momentan schreiben sie diese sofort auf die Festplatte.
Nun möchte ich die XML Datei und das Bild gerne im Speicher behalten und sie als POST (enctype="multipart/form-data") an ein Skript auf einen Server übermitteln.
Für diese Aufgabe habe ich eine ganz coole Lösung gefunden, jedoch akzeptiert diese nur die Typen InputStream und File als Parameter.
Also: ich brauch nen Hilfe bei:
- wie änder ich das ab, dass keine Ausgaben auf die Festplatten erstellt werden
- vom OutputStream zum InputStream zum verschicken übers Netz
erzeugt die XML Datei
erstellt aus einem BufferedImage eine Datei
Vielen Dank für Eure Hilfe!
Grüße, Nemesis
ich bin noch ziemlicher Anfänger in Java und hab jetzt ein Problem mit Input/Output Streams.
Ich habe hier 2 Methoden, die eine XML Datei und ein Bild erzeugen; momentan schreiben sie diese sofort auf die Festplatte.
Nun möchte ich die XML Datei und das Bild gerne im Speicher behalten und sie als POST (enctype="multipart/form-data") an ein Skript auf einen Server übermitteln.
Für diese Aufgabe habe ich eine ganz coole Lösung gefunden, jedoch akzeptiert diese nur die Typen InputStream und File als Parameter.
Code:
public void setParameter(String name, String filename, InputStream is)
public void setParameter(String name, File file)
Also: ich brauch nen Hilfe bei:
- wie änder ich das ab, dass keine Ausgaben auf die Festplatten erstellt werden
- vom OutputStream zum InputStream zum verschicken übers Netz
erzeugt die XML Datei
Code:
public void erzeugeXML(){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
// die Wurzel des XML Files
Element root = doc.createElement("capture");
doc.appendChild(root);
/*
hier wird einges eingehängt
*/
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
aTransformer.setOutputProperty(OutputKeys.INDENT, "yes");
Source src = new DOMSource(doc);
Result result = new StreamResult(new File("werte.xml"));
aTransformer.transform(src, result);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
erstellt aus einem BufferedImage eine Datei
Code:
...
BufferedImage result = ...; // ist egal, das Bild steht auf jeden Fall drin
// Entweder
FileOutputStream fos = new FileOutputStream("test.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(result);
param.setQuality(0.9f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(result);
fos.close();
// Oder
File file = new File("screen.png");
ImageIO.write(result, "png", file);
Vielen Dank für Eure Hilfe!
Grüße, Nemesis