2010-02-09 12 views
10

जावा byte[] st = new byte[4096] में, तात्पर्य है कि सरणी st का आकार 4096 बाइट से अधिक नहीं होगा।क्या मैं स्कैला में किसी सरणी के आकार को सीमित कर सकता हूं?

स्कैला समतुल्य st:Array[byte] = Array() है जहां आकार अज्ञात है। अगर मैं इस सरणी में एक बड़ी फाइल पढ़ रहा हूं, तो मैं सरणी के आकार को कैसे सीमित कर सकता हूं?

यदि कोई उपर्युक्त ऑपरेशन के आकार के बारे में परवाह नहीं करता है तो क्या कोई दुष्प्रभाव होगा?

उत्तर

27
var buffer = new Array[Byte](4 * 1024) 

ठीक काम करता है, और यह अपेक्षा के अनुसार व्यवहार करता है।

9

आप जावा उदाहरण अपने आकार पर ऊपरी बाउंड वाले सरणी का उत्पादन नहीं करता है, यह सटीक आकार के साथ एक सरणी उत्पन्न करता है, जो पूरे जीवनकाल में तय होता है। स्कैला सरणी इस संबंध में समान हैं। साथ ही, इस:

val st: Array[Byte] = Array() 

लंबाई की बाइट ("बाइट" जावा में) की एक सरणी आवंटित 0.

जहाँ तक एक सरणी में एक फ़ाइल को पढ़ने, अगर आप पूरी फ़ाइल संसाधित करना होगा के रूप में है, तो आवश्यक स्थान आवंटित करने का प्रयास करें और यदि यह विफल रहता है, तो आप आगे नहीं बढ़ सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे