मैं एक जावा BufferedReader
से पाठ पढ़ रहा हूँ इस तरह:स्ट्रीम "बंद करें"?
Stream.continually(reader.readLine).takeWhile {
case null => reader.close; false
case _ => true
}
यह काम करता है, लेकिन सिर्फ एक छोटे से मेरे लिए अनाड़ी लगता है। मेरी इच्छा है कि .whenDone
Stream
पर कुछ ऐसा था, ताकि मैं इसे पूरी चीज के उपभोग के बाद पाठक को बंद करने के लिए कह सकूं, और फिर .takeWhile(_ != null)
करें।
क्या ऐसा करने का कोई तरीका है जिसके बारे में मुझे नहीं पता? या, शायद, जावा Reader
से लाइनों की धारा प्राप्त करने का एक बेहतर तरीका (यदि यह InputStream
था, तो मैं उदाहरण के लिए Source.fromInputStream
कर सकता था, लेकिन Reader
के लिए समकक्ष प्रतीत नहीं होता ... नोट, यह यद्यपि समस्या केवल आंशिक रूप से हल हो जाएगी, क्योंकि कोई अन्य "बंद करने योग्य" ऑब्जेक्ट्स के साथ एक ही चीज़ करना चाहता है - उदाहरण के लिए ResultSet
)?