在内存管理和性能的情况下存储大字符串(超过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. 当唯一字符串位于2个不同位置时,从较长字符串获取唯一字符串
- 6. 计算字符串中的唯一字
- 7. 基于唯一子串的配对字符串
- 8. 字符串对象与Java中的OutputStreamWriter中的字符串字面量
- 9. 差 “字符串” 对象和字符串中的JavaScript字面
- 10. 唯一字符串组合
- 11. 基于一组有序的字符串生成直观的唯一字符串?
- 12. 将字符串对象转换为Javascript中的字符串原始字符串
- 13. 什么DS用于搜索Java中的一组字符串中的字符串?
- 14. Java地图对象,其中包含要字符串的JSON字符串字段
- 15. 存储在字符串池中唯一字符串lliterals?
- 16. android arraylist大量的字符串对象
- 17. Java内存在字符串[]中对多个字符串使用
- 18. 的Java Properties对象的字符串
- 19. 如何在Java中存储唯一的字符串对?
- 20. 基于一串非alpha字符分割java字符串
- 21. <字符串,对象> - Java的
- 22. Java字符串到对象的列表
- 23. 将一个字符串到另一个字符串中的Java
- 24. Java的转换{字符串,字符串} []地图<字符串,字符串[]>
- 25. 字符串内部的Java字符串
- 26. JAVA字符串HTML大小
- 27. 字符串内部的Java字符串到字符串
- 28. 添加字符串文字和字符串对象的区别
- 29. 是否有等价于接受非唯一键的SortedList(字符串,字符串)
- 30. 字符串中的第一个唯一字符