परिदृश्य:एक महंगा ऑपरेशन कास्टिंग कर रहा है?
- मैं एक बड़ी फ़ाइल (चरित्र फ़ाइल) को पार्स कर रहा हूँ। उदाहरण के लिए एक .csv फ़ाइल (बिल्कुल मेरा मामला नहीं)
- मैं पूरी फ़ाइल को स्मृति में नहीं रख सकता। तो मुझे एक बफर रणनीति लागू करनी होगी।
- मैं एक सामान्य हैंडलर बनाना चाहता हूं जो स्मृति में लगातार पंक्तियों (स्ट्रिंग्स के रूप में) रखेगा। अनियंत्रित रेखाओं को हटाते समय यह हैंडलर अन्य लाइनों को लाता है।
- इस हैंडलर पर मैं एक पार्सर का निर्माण करूंगा जो लाइनों को जावा ऑब्जेक्ट्स में बदल देगा और उन वस्तुओं पर परिवर्तन संचालित करेगा। एक बार परिवर्तन किए जाने के बाद (ऑब्जेक्ट्स पर कुछ फ़ील्ड्स अपडेट करें) फ़ाइलों को वापस फाइलों में रखें।
मैं चाहिए:
- के बजाय तार की एक सरणी के रूप में बफर रखने के लिए, मैं बफर सीधे वस्तुओं (एक भी डाली कर रही है) के रूप में रखना चाहिए? या ...
- बफर को लाइनों के रूप में रखें, हर बार जब मुझे बफर पर काम करने की आवश्यकता होती है, तो सही वस्तु पर जानकारी डालें, परिवर्तन करें, फ़ाइलों को वापस वापस रखें। अनुक्रमिक संचालन के लिए पूरक कास्ट की आवश्यकता होगी।
मुझे चीजों को सरल रखना होगा। कोई सुझाव?
आप अन्य डेटा प्रकारों पर स्ट्रिंग कास्टिंग कैसे कर रहे हैं? –
क्या आप कास्टिंग या पार्सिंग के बारे में बात कर रहे हैं? – fortran
यह अधिक जटिल है। यह बिल्कुल/से स्ट्रिंग तक कास्ट नहीं है, एक इंटरफ़ेस पंक्ति और अधिक कार्यान्वयन है। प्रत्येक कार्यान्वयन एक कंटेनर की तरह है, जो एक वस्तु देता है। उस वस्तु को कास्ट किया जाना चाहिए। अगर मुझे एक विशिष्ट पंक्ति पर कुछ बदलाव करना है, तो आंतरिक तंत्र में कुछ जानवरों की आवश्यकता होती है। –