gpt4 book ai didi

scala读取大文件

转载 作者:行者123 更新时间:2023-12-02 08:40:48 26 4
gpt4 key购买 nike

您好,我正在寻找最快的 bat 而不是高级方法来处理大量数据收集。我的任务包括两个任务,读取内存中的大量大文件,然后进行一些统计计算(在此任务中处理数据的最简单方法是随机访问数组)。

我的第一个方法是使用 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 = " + ???)

但是 ByteArrayOutputStream 无法获取我,因为 byte[] 只是它的副本。但我不能允许有 2 个数据副本。

最佳答案

你试过了吗scala-io ?应该和 Resource.fromFile(f).byteArray 一样简单。

关于scala读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com