在内存管理和性能的情况下存储大字符串(超过300000个字符)是否是一种很好的做法,或者有更好的方法吗?用于Java中大字符串的唯一字符串对象
0
A
回答
1
约翰·斯乔贝格的解释是好的:
“这是如何使用这将决定实践的String。”
如果30万字,使你的String对象不驻留在用双引号(”“),例如Java源文件位于外部文件中,那么您可以使用不同的技术按块或整体获取字符串内容块。看看这个例子:
FileInputStream fis = new FileInputStream("yourFile.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
byte [] buffer = new byte [ 8 ];
int bytesRead = 0;
String chunk = "";
while ((bytesRead = bis.read(buffer)) != -1)
chunk = new String(buffer, 0, bytesRead);
假设你处理可能出现的异常,在上面的代码中你会得到你每次进入while循环时间的大小8个字节的字符串。因此,通过修改此代码中的8字节数组大小,您可以更改块大小,并在其他地方使用块,打印它们等。
在您的示例中,您说您的字符串包含大约300000个字符。因此,将字节数组buffer
的大小设置为4 x 300,000 = 1,200,000将使您获得包含所有字符的单个字符串块。
1
Java表示使用UTF-16
编码的字符串,因此在最坏的情况下,每个字符为4
字节。这给你一个粗略的4*300000/1024/1024 ~ 1.14MB
字符串,这本身并不坏。
这就是你如何使用确定实践的字符串。
相关问题
- 1. 字符串唯一字符
- 2. Java中,字符串对象
- 3. 基于一对字符串生成一个唯一的字符串
- 4. Java - 使用名称形式的对象字符串字符串
- 5. 数据绑定适用于字符串,但字符串对象
- 6. 检查字符串中的唯一字符(java)
- 7. 当唯一字符串位于2个不同位置时,从较长字符串获取唯一字符串
- 8. Genrate基于另一个字符串的唯一数字字符串iOS
- 9. Java - ajax中的字符串对象
- 10. java中的字符串对象
- 11. Java中的字符串和对象
- 12. 字符串中的唯一字
- 13. 计算字符串中的唯一字
- 14. 计算字符串中的唯一字
- 15. 基于唯一子串的配对字符串
- 16. Java字符串[]字符串[]
- 17. 字符串对象与Java中的OutputStreamWriter中的字符串字面量
- 18. 对象的唯一整数或字符串标识符(散列)
- 19. 差 “字符串” 对象和字符串中的JavaScript字面
- 20. 创建构造函数的字符串字符串1,字符串字符串2,字符串STRING3,对象object1
- 21. Rails字符串唯一ID
- 22. 唯一字符串组合
- 23. 基于一组有序的字符串生成直观的唯一字符串?
- 24. 什么DS用于搜索Java中的一组字符串中的字符串?
- 25. 将字符串对象转换为Javascript中的字符串原始字符串
- 26. Java地图对象,其中包含要字符串的JSON字符串字段
- 27. java中唯一字符串的唯一十六进制数
- 28. 存储在字符串池中唯一字符串lliterals?
- 29. 字符串中的最大数字[Java]
- 30. Java字符串对象是一个字符数组吗?