java - 如何在Java + Akka上读取文件并发

标签 java lambda akka

我有一个大数据 csv 文件,其中包含键:值行。我怎样才能并行阅读它? 我无法将其划分为 block ,因为任何行都有另一个字节大小。 这种情况我该怎么办?

我找不到 Java 的示例。

最佳答案

实际上没有理由并行读取同一个文件,因为这不会提高文件读取的速度。如果您想读取文件,您有多种选择:

  1. 您一次将整个文件读取到一个字节[],这是加载文件的最快方式,之后您可以将其拆分为新行并管理数据。

  2. 您可以使用 Scanner 和 nextLine 方法从文件中读取行。这并不是很有效,所以我不推荐这样做。

  3. 您使用一些填充字节数组读取文件。这是一个内存使用效率高的解决方案,但 1. 选项仍然是最好的。

此外,由于文件加载相对较慢(与 RAM 中的数据管理相比),您应该创建一个线程(是的,只有一个,不需要更多)将所有文件读取到字节数组,也许还有另一个线程将 byte[] 转换为加载的配置的线程,因为如果文件很大,这也会花费很多时间。

关于java - 如何在Java + Akka上读取文件并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108092/

相关文章:

java - 为什么 `break label` 不能在 lambda 表达式中使用?有什么解决办法吗?

Swift 闭包更改捕获的变量

scala - 具有远程 Actor 和耐用邮箱的 Akka

java - Java 是否支持 Let's Encrypt 证书?

java - Spring Boot 无法为服务测试类 Autowiring 存储库 bean

java - 何时调用 editor.apply?

python - 使用 lambda 排序函数按每个元组组合值对字符串元组进行排序

java - Gradle Kotlin DSL : Extract contents from dependency

scala - 在 akka 2.x 中,root actor 是否由其他人监督?

Scala Future mapTo由于缺少ClassTag而无法编译