Объяснение Йохана Шёберга хорошо:
«Как использовать строку, которая будет определять практику».
Если 300 000 символов, составляющих ваш объект String, не находятся в исходном файле Java, заключенном в двойные кавычки (""), например, находясь во внешнем файле, вы можете использовать различные методы для получения фрагмента содержимого String по фрагменту или в целом. Взгляните на этот пример:
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 );
Предполагая, что вы обрабатываете возможные исключения, в приведенном выше коде вы получаете строку размером 8 байт каждый раз, когда вы входите в цикл while. Таким образом, изменяя размер байтового массива, равный 8 в этом коде, вы можете изменить размер чанка и использовать чанки в любом другом месте, распечатывать их и т. Д.
В вашем примере вы говорите, что ваша строка содержит около 300000 символов. Поэтому, установив размер байтового массива buffer
равным 4 x 300 000 = 1 200 000 , вы сможете получить фрагмент строки, содержащий все символы.