Ole*_*leg 2 scala large-files bytearrayoutputstream
您好我正在寻找最快的蝙蝠而非高级方式来处理大数据集合.我的任务包括在内存中读取大量文件的两个任务,然后进行一些统计计算(在此任务中使用数据的最简单方法是随机访问数组).
我的第一种方法是使用java.io.ByteArrayOutputStream,因为它可以调整其内部存储的大小.
def packTo(buf:java.io.ByteArrayOutputStream,f:File) = {
try {
val fs = new java.io.FileInputStream(f)
IOUtils.copy(fs,buf)
} catch {
case e:java.io.FileNotFoundException =>
}
}
val buf = new java.io.ByteArrayOutputStream()
files foreach { f:File => packTo(buf,f) }
println(buf.size())
for(i <- 0 to buf.size()) {
for(j <- 0 to buf.size()) {
for(k <- 0 to buf.size()) {
// println("i " + i + " " + buf[i] );
// Calculate something amathing using buf[i] buf[j] buf[k]
}
}
}
println("amazing = " + ???)
Run Code Online (Sandbox Code Playgroud)
但ByteArrayOutputStream不能把我当成byte[]它的副本.但我不能允许有2份数据.