2010-09-27 27 views
7

क्या गुवा का उपयोग करके नीचे प्राप्त करने का कोई तरीका है?अमरूद का उपयोग करके मैं यह कैसे कर सकता हूं?

//anything better than using Files.append() in a loop? 
org.apache.commons.io.FileUtils.writeLines(File file, Collection lines, String lineEnding); 

//gives a byte[] that is fed to Files.write(byte[] from, File to) 
org.apache.commons.lang.SerializationUtils.serialize(Serializable obj) 

//get an object from a byte[] 
SerializationUtils.SerializationUtils.deserialize(byte[] from) 

धन्यवाद।

उत्तर

12

पहले के लिए, एक विकल्प होगा:

Files.write(Joiner.on(lineEnding).join(lines), file, charset); 

मैं नहीं जानता कि यह जरूरी एक पाश में जोड़कर (तुलना में तेजी से हो सकता है और स्पष्ट रूप से यह रूप में अच्छी तरह लाइनों के आधार पर एक और स्ट्रिंग के निर्माण शामिल है), लेकिन यह अच्छी तरह से पढ़ता है।

अन्य दो के लिए ... गुवा वास्तव में धारावाहिक के लिए विशिष्ट कुछ भी प्रदान नहीं करता है। उस ने कहा, यदि आप चाहते हैं तो आप अमरूद के आईओ समर्थन के शीर्ष पर कुछ अच्छी सुविधाएं बना सकते हैं। इंटरमीडिएट byte[] के माध्यम से जाकर ऑब्जेक्ट को क्रमबद्ध करने या ऑब्जेरियलाइज करने के लिए अपमानजनक लगता है जब आप ऑब्जेक्ट को सीधे/स्ट्रीम से ऑब्जेक्ट लिख/पढ़ सकते हैं। इन तरह के तरीके लिखने के लिए काफी आसान होंगे:

void serialize(OutputSupplier<? extends OutputStream> outputSupplier, 
       Object object) throws IOException; 

Object deserialize(InputSupplier<? extends InputStream> inputSupplier) 
    throws IOException, ClassNotFoundException; 
संबंधित मुद्दे

 संबंधित मुद्दे