में कनवर्ट करना चाहता हूं, मैं OutputStream
को String
ऑब्जेक्ट में कनवर्ट करना चाहता हूं। मेरे पास JAXB ऑब्जेक्ट को मार्शल करने के बाद OutputStream
ऑब्जेक्ट लौटा रहा है।मैं आउटपुट स्ट्रीम को स्ट्रिंग ऑब्जेक्ट
उत्तर
public String asString(JAXBContext pContext,
Object pObject)
throws
JAXBException {
java.io.StringWriter sw = new StringWriter();
Marshaller marshaller = pContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.marshal(pObject, sw);
return sw.toString();
}
लेकिन मैं एक stirng वस्तु के बारे में यकीन नहीं है का उपयोग कर आप एक स्ट्रिंग में बदल सकते हैं खोजने के लिए सक्षम था से नहीं
। अभी तक ढुंढ रहा हूँ।
** संपादित
एक गैर तत्व
मार्शलिंग एक अन्य आम उपयोग है आप एक वस्तु है कि उस पर @XmlRootElement नहीं है है जहां। JAXB आप इसे इस तरह मार्शल करने के लिए अनुमति देता है:
marshaller.marshal (नई JAXBElement (
नई QName ("", "rootTag"), Point.class, नई प्वाइंट (...)));यह तत्व को रूट तत्व के रूप में रखता है, उसके बाद ऑब्जेक्ट की सामग्री होती है। आप वास्तव में उस वर्ग के साथ उपयोग कर सकते हैं जो में @XmlRootElement है, और यह कि बस रूट तत्व नाम का नाम बदलता है।
पहली नज़र दूसरा Point.class पैरामीटर निरर्थक लग सकता है पर, लेकिन यह अगर marshaller होगा (कुख्यात) @xsi उत्पादन निर्धारित करने के लिए वास्तव में आवश्यक है: प्रकार। इस उदाहरण में, कक्षा और उदाहरण दोनों बिंदु हैं, इसलिए आपको @xsi नहीं दिखाई देगा: प्रकार। लेकिन अगर वे अलग हैं, आप इसे देखेंगे।
इसका उपयोग स्ट्रिंग या पूर्णांक जैसे सरल ऑब्जेक्ट को मार्शल करने के लिए भी किया जा सकता है।
marshaller.marshal (नई JAXBElement (
नई QName ("", "rootTag"), String.class, "foo बार"));लेकिन दुर्भाग्य से यह सूची या मानचित्र की तरह मार्शल वस्तुओं के लिए नहीं किया जा सकता है, के रूप में वे JAXB दुनिया में प्रथम श्रेणी के नागरिक के रूप में संभाला नहीं कर रहे हैं।
पाया HERE
public String readFile(String pathname) throws IOException {
File file = new File(pathname);
StringBuilder fileContents = new StringBuilder((int) file.length());
Scanner scanner = new Scanner(file);
String lineSeparator = System.getProperty("line.separator");
try {
while (scanner.hasNextLine()) {
fileContents.append(scanner.nextLine() + lineSeparator);
}
return fileContents.toString();
}
finally {
scanner.close();
}
}
विधि एक्सएमएल संभालने के लिए और यह एक स्ट्रिंग में बदलने के लिए।
JAXBContext jc = JAXBContext.newInstance(ClassMatchingStartofXMLTags.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
//store filepath to be used
String filePath = "YourXMLFile.xml";
File xmlFile = new File(filePath);
//Set up xml Marshaller
ClassMatchingStartofXMLTags xmlMarshaller = (ClassMatchingStartofXMLTags) unmarshaller.unmarshal(xmlFileEdit);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
// Use marshall to output the contents of the xml file
System.out.println("Marshalled XML\n");
marshaller.marshal(xmlMarshaller, System.out);
//Use Readfile method to convert the XML to a string and output the results
System.out.println("\nXML to String");
String strFile = ReadFile(xmlFile)
System.out.println(strFile);
अपने वर्ग के भीतर विधि एक्सएमएल और मार्शल पाने के लिए यह संपादित उपरोक्त विधि होगा दोनों उत्पादन मार्शल एक्सएमएल और यह भी एक स्ट्रिंग के रूप में xml।
यह बेहद शांत है, और स्पष्ट या उचित जावा नहीं है। मूल लेखक के पास एक एक्सएमएल फ़ाइल हाथ में नहीं है; एक आउटपुटस्ट्रीम को संदर्भित प्रश्न। –
StringWriter sw = new StringWriter();
com.integra.xml.Integracao integracao = new Integracao();
integracao.add(...);
try {
JAXBContext context = JAXBContext.newInstance("com.integra.xml");
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(integracao, sw);
System.out.println(sw.toString());
} catch (JAXBException e) {
e.printStackTrace();
}
अब तक का सबसे साफ दृष्टिकोण – xyz
हां, ऐसा करने का एक तरीका है: बस स्ट्रिंग लेखक को इनपुट के रूप में पास करें। ताकि यह बनाया गया एक्सएमएल
public void saveSettings() throws IOException {
FileOutputStream os = null;
//Declare a StringWriter to which the output has to go
StringWriter sw = new StringWriter();
try {
Answer ans1=new Answer(101,"java is a programming language","ravi");
Answer ans2=new Answer(102,"java is a platform","john");
ArrayList<Answer> list=new ArrayList<Answer>();
list.add(ans1);
list.add(ans2);
settings=new Question(1,"What is java?",list);
os = new FileOutputStream(FILE_NAME);
this.marshaller.marshal(settings, new StreamResult(sw));
System.out.println(sw.toString());
new File(FILE_NAME).delete();
} finally {
if (os != null) {
os.close();
}
}
}
- 1. किसी ऑब्जेक्ट से ऑब्जेक्ट आउटपुट स्ट्रीम बनाएं
- 2. स्ट्रीम परिणामों को स्ट्रिंग
- 3. आउटपुट स्ट्रीम
- 4. सी ++ इनपुट स्ट्रीम स्ट्रीम आउटपुट स्ट्रीम
- 5. जावा विभिन्न आउटपुट स्ट्रीम
- 6. मैं नैन्सीएफएक्स में स्ट्रीम आउटपुट कैसे लिखूं?
- 7. PHP: करीबी आउटपुट स्ट्रीम
- 8. सर्वलेट आउटपुट स्ट्रीम
- 9. इनपुट/आउटपुट स्ट्रीम
- 10. स्ट्रीम एफ़टीपी डाउनलोड आउटपुट
- 11. मैं एक HttpServletReponses आउटपुट स्ट्रीम कैसे पढ़ सकता हूं?
- 12. मेमोरी स्ट्रीम से स्ट्रिंग
- 13. रीडायरेक्ट लेकिन प्रक्रिया आउटपुट स्ट्रीम
- 14. जावा में इनपुट और आउटपुट स्ट्रीम पाइप
- 15. मैं अपने HttpServletResponse आउटपुट स्ट्रीम में log4j आउटपुट को रीडायरेक्ट कैसे करूं?
- 16. किसी ऑब्जेक्ट को स्ट्रिंग
- 17. स्ट्रिंग को ऑब्जेक्ट आईडी
- 18. जेएसओएन स्ट्रिंग को जेएसओएन ऑब्जेक्ट
- 19. विंडोज यूनिकोड सी ++ स्ट्रीम आउटपुट विफलता
- 20. क्या मैं स्ट्रीम ऑब्जेक्ट को FileInfo ऑब्जेक्ट में परिवर्तित कर सकता हूं?
- 21. मैं आउटपुट स्ट्रीम कैसे बना सकता हूं, इसलिए आउटपुट एक साथ कई स्थानों पर जाता है?
- 22. सी ++: स्ट्रिंग स्ट्रीम का क्या लाभ है?
- 23. स्ट्रीम टू स्ट्रिंग जावा/ग्रोवी
- 24. मैं सी # में एसिंक्रोनस टीसीपी ऑब्जेक्ट स्ट्रीम कैसे प्राप्त करूं?
- 25. एक FILE * स्ट्रीम बनाना जिसके परिणामस्वरूप स्ट्रिंग
- 26. किसी ऑब्जेक्ट को XML स्ट्रिंग
- 27. पावरहेल: किसी ऑब्जेक्ट को स्ट्रिंग
- 28. मैं XmlTextReader से एक स्ट्रिंग के रूप में एक्सएमएल को एक Response.Write में कैसे आउटपुट करूं?
- 29. .Net - आउटपुट स्ट्रिंग
- 30. सॉकेट.ओ स्ट्रीम को नोड प्रतिलिपि स्ट्रीम
बस यहां एक नोट बना रहा है कि स्ट्रिंगवाइटर दृष्टिकोण वास्तव में काम करता है। धन्यवाद! – eis