在Java byte[] st = new byte[4096]
,意味着陣列st
的這種規模不會超過4096個字節。我能否限制在Scala中的數組的大小?
斯卡拉相當於是st:Array[byte] = Array()
其中大小是未知的。如果我讀一個巨大的文件進入此陣,那我怎麼才能限制數組的大小?
會不會有什麼副作用,如果我不關心大小爲上述操作?
在Java byte[] st = new byte[4096]
,意味着陣列st
的這種規模不會超過4096個字節。我能否限制在Scala中的數組的大小?
斯卡拉相當於是st:Array[byte] = Array()
其中大小是未知的。如果我讀一個巨大的文件進入此陣,那我怎麼才能限制數組的大小?
會不會有什麼副作用,如果我不關心大小爲上述操作?
var buffer = new Array[Byte](4 * 1024)
工作得很好,它的行爲如預期。
您Java示例不產生與它的大小的上限的陣列,它產生具有精確指定的大小時,其被固定在其整個生命週期的陣列。 Scala數組在這方面是相同的。此外,這樣的:
val st: Array[Byte] = Array()
分配長度的字節(在Java中「字節」)的陣列0
至於讀入文件到一個數組,如果必須處理整個文件,然後嘗試分配所需的空間,如果失敗,則無法繼續。