У меня есть большой файл, и я хочу выполнить некоторые «операции» на нем (найти текст, проверить, существует ли какой-либо текст, получить смещение некоторого текста, возможно, изменить файл).Использование чего-то другого вместо строки
Мой текущий Подход заключается в следующем:
public ResultSet getResultSet(String fileName) throws IOException {
InputStream in = new FileInputStream(fileName);
byte[] buffer = new byte[CAPACITY];
byte[] doubleBuffer = new byte[2 * CAPACITY];
long len = in.read(doubleBuffer);
while (true) {
String reconstitutedString = new String(doubleBuffer, 0 ,doubleBuffer.length);
//...do stuff
ByteArrayOutputStream os = new ByteArrayOutputStream();
os.write(doubleBuffer, CAPACITY, CAPACITY);
readUntilNow += len;
len = in.read(buffer);
if (len <= 0) {
break;
}
os.write(buffer, 0, CAPACITY);
doubleBuffer = os.toByteArray();
os.close();
}
in.close();
return makeResult();
}
Я хотел бы изменить Струнный reconstitutedString в нечто другое. Что было бы лучшей альтернативой учитывая, что я хочу, чтобы иметь возможность получить информацию о содержании этих данных, информация, которую я могу получить вызов IndexOf на строке
Поскольку это методы класса String, что заставляет вас предположить, что есть альтернатива? Вы можете использовать StringBuilder для его создания, но для выполнения этих действий вам все равно потребуется значение String. Если, конечно, вы не готовы создать свою собственную реализацию и переписать все эти методы. – Stultuske
Ну, я не ищу альтернативу с теми же точными методами. До тех пор, пока у меня есть способ получить тот же результат, что и indexOf, я доволен. –
Я только упоминал о методах, которые вы заявили, что вам нужно. Они очень специфичны для объектов String, поэтому вы не найдете их в другом классе, если только вы не создадите их. – Stultuske