gpt4 book ai didi

java - Java 中大字符串的唯一 String 对象

转载 作者:行者123 更新时间:2023-12-02 07:55:58 30 4
gpt4 key购买 nike

在内存管理和性能方面,将大字符串(超过 300000 个字符)存储在单个 String 对象中是一个好习惯还是有更好的方法?

最佳答案

Johan Sjöberg 的解释很好:

"It's how to use the String which would determine the practice."

如果组成 String 对象的 300,000 个字符不存在于用双引号 ("") 括起来的 Java 源文件中,例如驻留在外部文件中,那么您可以使用不同的技术来逐 block 或整体获取字符串内容。看一下这个例子:

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),您可以更改 block 大小并在其他任何地方使用 block 、打印它们等。

在您的示例中,您说您的字符串大约有 300000 个字符。因此,将字节数组 buffer 的大小设置为 4 x 300,000 = 1,200,000 将使您能够获得包含所有字符的单个字符串 block 。

关于java - Java 中大字符串的唯一 String 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9647276/

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