2010-02-09 40 views
10

在Java byte[] st = new byte[4096],意味着陣列st的這種規模不會超過4096個字節。我能否限制在Scala中的數組的大小?

斯卡拉相當於是st:Array[byte] = Array()其中大小是未知的。如果我讀一個巨大的文件進入此陣,那我怎麼才能限制數組的大小?

會不會有什麼副作用,如果我不關心大小爲上述操作?

回答

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

工作得很好,它的行爲如預期。

9

您Java示例不產生與它的大小的上限的陣列,它產生具有精確指定的大小時,其被固定在其整個生命週期的陣列。 Scala數組在這方面是相同的。此外,這樣的:

val st: Array[Byte] = Array() 

分配長度的字節(在Java中「字節」)的陣列0

至於讀入文件到一個數組,如果必須處理整個文件,然後嘗試分配所需的空間,如果失敗,則無法繼續。

相關問題