2011-01-24 18 views
6

मैं फ्लाई पर संसाधनों के साथ बहुत कुछ करने की जरूरत है: XSD/एक्सएमएल डॉक्स पार्स करने, निर्माण और जावा वर्गों के संकलन, उन्हें जार ans युद्ध में पैकेज, डीबी में जारी रहती है, उन्हें OSGi के रूप में तैनात, आदिजावा इन-मेमोरी फ़ाइल संरचना?

अधिकांश पुस्तकालयों/एपीआई, जिनका मैं उपयोग करता हूं, इन सभी मध्यवर्ती कार्यों को स्मृति में करने की अनुमति देता है, लेकिन कुछ "विशेष" पुस्तकालय केवल java.io.File के साथ काम कर रहे हैं। और मेरे लिए कुछ भी नहीं बचा है लेकिन वास्तविक अस्थायी फ़ाइलों और निर्देशिकाओं का उपयोग करना जो जावा ईई पर्यावरण में अच्छा नहीं है।

मेरा मानना ​​है कि इन-मेमोरी फ़ाइल संरचना के लिए लाइब्रेरी/समाधान होना चाहिए जिसमें नोड्स java.io.File (जैसा कि मैंने इसे देखा) विस्तारित किया है। ज्ञात/समान पुस्तकालयों के लिंक में कृपया ड्रॉप करें। किसी भी टिप्पणी का स्वागत है।

धन्यवाद!

+0

मेरा मानना ​​है कि यह वही प्रश्न है जो http://stackoverflow.com/questions/578305/create-a-java-file-object-or-equivalent-using-a-byte-array-in- मेमोरी-बिना- –

+0

@ क्रिस थॉम्पसन, मैंने इसे पोस्ट करने से पहले पढ़ा है। यह वास्तव में एक ही imho नहीं है। – Osw

+0

काफी मेला, मैं निश्चित रूप से चीजों के उस पक्ष को देख सकता हूं। किसी भी तरह से, आपका प्रश्न एक अच्छा है और अगर मैं इसे पूरा करने के लिए कुछ नहीं कर रहा था तो मुझे आश्चर्य होगा ... –

उत्तर

6

मुझे विश्वास नहीं है कि आप जो खोज रहे हैं उसे ढूंढने जा रहे हैं। Java.io.File API को फ़ाइल सिस्टम अबास्ट्रक्शन प्रदान करने के इरादे से नहीं लिखा गया था जिसे विभिन्न तरीकों से कार्यान्वित किया जा सकता है। हालांकि यह कुछ एफएस संचालन (जैसे डिलीट और एमकेडीआईआर) के लिए विधि का पर्दाफाश करता है, यह मूल पढ़ने/लिखने I/O को संभाल नहीं करता है। यह अन्य कक्षाओं के लिए छोड़ दिया गया है, जैसे FileInputStream। इसका मतलब है कि एपीआई स्टैंडपॉइंट से, एक फ़ाइल ऑब्जेक्ट पथ से अधिक नहीं है। कुछ भी सारणित नहीं है। आप फंसे हुए हैं।

+0

अच्छा शॉट। क्या यह सुनिश्चित है कि java.io.File मूल I/O निष्पादित नहीं करता है? तब मेरे पास कोई संभावना नहीं है :( – Osw

+0

ठीक है, यहां जावाडोक है: http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html। अगर फ़ाइल क्लास सारण कर रहा था I/हे ऑपरेशंस आप getInputStream(), getOutputStream(), आदि जैसी विधियों को देखने की अपेक्षा करेंगे, जो निश्चित रूप से वहां नहीं हैं।जावा के परिचय के बाद, अन्य ने सही फाइल सिस्टम एपीआई लिखी हैं जिन्हें विभिन्न तरीकों से कार्यान्वित किया जा सकता है, लेकिन यह आपके उपयोगकेस की मदद नहीं करता है। –

+0

बस फ़ाइल और फ़ाइल इनपुट स्ट्रीम स्रोतों के माध्यम से देखा। तुम सही हो, मैं फंस गया हूँ। – Osw

4

एक विकल्प RAM disk का उपयोग करना है। आपका प्रोग्राम java.io.File के साथ डिस्क का उपयोग करने के बारे में सोचता है, लेकिन यह वास्तव में मुख्य स्मृति का उपयोग करेगा।

+0

+1। हालांकि, यह अभी भी "जावा ईई" पर्यावरण में "अच्छी तरह फिट" नहीं है ... जो कुछ भी है :) –

+0

@pst, यह "जावा ईई" वातावरण में "ठीक से फिट" क्यों नहीं है? यह सिर्फ एक अतिरिक्त एफएस मेजबान प्रणाली प्रदान करता है। उसे अपनी फाइलें पढ़ने और लिखने के लिए कुछ रास्ता उपयोग करना है; यह इन-मेमोरी एफएस पर भी हो सकता है। – Jay

+0

@ जे, विचार के लिए धन्यवाद, लेकिन यह सॉफ्टवेयर हार्डवेयर एस्ट्रस्ट्रक्शन परत के बारे में सोच रहा था, जबकि यह थोड़ा हार्डवेयर/सिस्टम सामान है। – Osw

0

वहाँ एक अच्छा विकल्प उपलब्ध है: https://github.com/google/jimfs

यह जावा (7+) स्मृति फाइल सिस्टम को संभालने में समर्थन करता है और भी उपयोग करने के लिए बहुत आसान है।