java - 将一个长字符串读入内存

标签 java programming-languages hadoop large-files

我有一个非常大的字符串,当我用 Java 读取它时,出现内存不足错误。实际上,我需要将所有这些字符串读入内存,然后拆分成单独的字符串并根据值对它们进行排序。最好的方法是什么?

谢谢

最佳答案

你的大字符串来自哪里?正如您所说的那样,我认为它来自文件。你必须知道整个字符串才能知道在哪里拆分它吗?如果没有,您可以逐个字符地读取文件,直到遇到拆分标记,将到目前为止读取的所有字符放入一个字符串中,然后开始读取下一个字符串。你能大致知道在哪里对你刚刚阅读的单个字符串进行排序吗?如果是这样,您可以在第一次运行时将部分字符串写入单独的文件(例如,当您按字母顺序对字符串进行排序时,所有以 A 开头的字符串都会转到 A.tmp)。之后,您可以对创建的文件内容进行排序(希望现在足够小以适合您的内存),最后将内容附加到新的输出文件。

关于java - 将一个长字符串读入内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836553/

相关文章:

java - 如何通过jobClient自动提交jar到hadoop

java - 为什么我尝试在 TomCat 上部署项目时收到此错误消息(来自 NetBeans)? (上下文启动失败)

java - Java 中 Thread 的自定义实现 : Is it possible though JNI?

functional-programming - 是否有一种语言既可以完成 SQL 的任务,又可以进行通用编程?

hadoop - 如何在现有 Hive 表中加载新数据集?

hadoop - 在Pig Latin中查找文件中的逗号数

java - 在java中查找非常大的格式化文本文件中的字符串

java - 快速而肮脏的设计与良好的设计

c++ - 如何简化嵌套循环?

java - 如何获取 "Compute Language Benchmark Game"的 jruby 基准测试和框架