मैं लाइन से फ़ाइल लाइन पढ़ना चाहता हूं। BufferedReader RandomAccessFile या BufferedInputStream से बहुत तेज है। लेकिन समस्या यह है कि मुझे नहीं पता कि मैंने कितने बाइट पढ़े हैं। बाइट्स को पढ़ने (ऑफसेट) कैसे जानें? मैंने कोशिश की।BufferedReader के बाइट्स पढ़ने (ऑफ़सेट) को कैसे जानें?
String buffer;
int offset = 0;
while ((buffer = br.readLine()) != null)
offset += buffer.getBytes().length + 1; // 1 is for line separator
यदि फ़ाइल छोटा है तो मैं काम करता हूं। लेकिन, जब फ़ाइल बड़ी हो जाती है, ऑफ़सेट वास्तविक मान से छोटा हो जाता है। मैं ऑफ़सेट कैसे प्राप्त कर सकता हूं?
आप क्या हासिल करने की कोशिश कर रहे हैं? यह आंतरिक बफर (और एन्कोडिंग, और विभिन्न पंक्ति समाप्ति) के कारण मूल रूप से मुश्किल है। –
मैं लाइनों की शुरुआत के ऑफसेट प्राप्त करना चाहता हूं। इसलिए, मैं बाद में RandomAccessFile का उपयोग कर फ़ाइल के कुछ हिस्से को पढ़ने के लिए उस ऑफ़सेट का उपयोग करता हूं। – user1301568
आप मान रहे हैं कि केवल एक पंक्ति विभाजक बाइट है, उदा। \ N। क्या आप इसे मान सकते हैं? – EJP