Java 有没有聪明的方法将一个非常大的文件的所有字符存储到一个字符串中?

Java 有没有聪明的方法将一个非常大的文件的所有字符存储到一个字符串中?,java,string,Java,String,在这里一位专家的帮助下,我目前有以下几点: File f = new File(inputFileName); Scanner in = new Scanner(f); String input = in.useDelimiter("\\Z").next(); 但是,如果文件(里面的所有文本)太大,我的字符串对象将只从中间开始存储到文件的末尾? 有什么建议吗?我的文件大小约为3000kb 还有,一个字符串可以存储多少字符?所以我知道什么文件大小及以上会导致我的程序崩溃 谢谢 更新:伙计们,我意

在这里一位专家的帮助下,我目前有以下几点:

File f = new File(inputFileName);
Scanner in = new Scanner(f);
String input = in.useDelimiter("\\Z").next();
但是,如果文件(里面的所有文本)太大,我的字符串对象将只从中间开始存储到文件的末尾? 有什么建议吗?我的文件大小约为3000kb

还有,一个字符串可以存储多少字符?所以我知道什么文件大小及以上会导致我的程序崩溃

谢谢


更新:伙计们,我意识到问题可能不是我的字符串无法存储文件中的所有字符,而是处理我的压缩需要很长时间。我还在调试,会尽快更新,我很确定的问题。有人知道子字符串是否会导致我的程序非常慢吗?因为我不认为我的算法有什么大问题

第一个问题已经在这里得到了回答:

第二个问题的部分答案如下:

但确切的答案是:

String
char
的最大值为:

Integer.MAX_VALUE - 5

您是否尝试过split的标记器(将其存储在字符串数组中)?为什么要将一个非常大的文件的所有字符存储在
字符串中
?实际任务是什么?@ElliottFrisch@PM77-1虽然您想帮助他,但这个问题有些可疑,应该优先解决它,依我看,而不是提出替代方案或更好的方法。有很多问题涉及到“大文件”和
扫描仪
,没有人解释为什么
扫描仪
不能处理大文件,他们建议使用一个缓冲读卡器。@mostruash这就是为什么我问OP为什么要这样做。