मैं जावा SE उपयोग कर रहा हूँ 6.क्या जावा में लाइन विभाजक की जांच करने के लिए एक मानक एपीआई है?
मेरे कार्यक्रम यूनिकोड को डॉस से यूनिक्स को लेकर फ़ाइलें और ascii के कई प्रकार पढ़ता है, और मुझे यकीन है कि आउटपुट फ़ाइल के लिए पंक्ति विभाजक इनपुट फ़ाइलों मिलान करने के लिए किया है।
जिस तरह से मैं ऐसा करता हूं, मैंने पहली पंक्ति विभाजक की खोज करने के लिए बुफर्ड रीडर रीड() फ़ंक्शन के साथ एक नमूना रेखा पढ़ी है और उस लाइन विभाजक को स्ट्रिंग में सहेजने के लिए। इस तरह इसे बाद में इस्तेमाल किया जा सकता है जब भी मुझे एक नई लाइन चाहिए।
मैं स्कैनर वर्ग का निरीक्षण किया और देखा संभव पंक्ति विभाजक निम्नलिखित शामिल हो सकते है कि है:
\r\n
\r
\n
\u2028
\u2029
\u0085
इन पात्रों के लिए जाँच करने के लिए एक पुस्तकालय समारोह है? या इससे भी बेहतर, यह जांचने के लिए पहले से ही एक लाइब्रेरी फ़ंक्शन है कि इनपुट लाइन लाइनर कैसा दिखता है?
क्या इसके आसपास कोई और तरीका है?
संपादित करें: यदि संभव हो तो मैं तृतीय पक्ष पुस्तकालयों के बजाय जावा के मानक API का उपयोग करना चाहता हूं, लेकिन सभी सुझावों का स्वागत है।
संपादित करें: बस स्पष्ट करने के लिए।
1) इनपुट फ़ाइलें इस प्रोग्राम पर चल रही है इस पर निर्भर नहीं है। उदाहरण के लिए, यदि मैं डॉस में इस प्रोग्राम को चला रहा हूं, तो भी मुझे यूनिक्स इनपुट फ़ाइल मिल सकती है।
2) मेरा लक्ष्य लाइन विभाजक के साथ सीमित प्रत्येक पंक्ति को पढ़ना नहीं है - यह आसान है। मुझे वास्तव में आवश्यकता है कि इनपुट फ़ाइल के रूप में एक ही लाइन विभाजक के साथ एक आउटपुट फ़ाइल लिखना है। उदाहरण के लिए, यदि मैं डॉस में इस प्रोग्राम को चला रहा हूं, और मुझे यूनिक्स इनपुट फ़ाइल मिलती है, तो मैं यूनिक्स लाइन विभाजक के साथ अपनी आउटपुट फ़ाइल लिखने में सक्षम होना चाहता हूं। यही कारण है कि मैं पूछ रहा हूं कि ओएस चलाने के बजाय, इनपुट फ़ाइलों के आधार पर लाइन विभाजक का पता लगाने के लिए मानक API है या नहीं।
धन्यवाद।
"प्रतीत होता है" - यह निश्चित रूप से एक एज-केस नहीं है, उदाहरण के लिए - मेनफ्रेम प्रतिक्रियाओं के साथ जावा यूनिक्स लॉग फ़ाइलें, या विभिन्न स्रोतों से प्रतिलिपि-चिपकाए गए ग्रंथ। मैं कभी नहीं मानता कि फ़ाइल में केवल एक प्रकार का लाइन विभाजक है। –