У меня есть несколько сжатых строк (1,5M каждая), хранящихся в файле. Мне нужно прочитать их и сделать некоторые вычисления на них. Вот что я сделал:
public static Object fetchRSFB(File inFile) {
FileInputStream fis = null;
ObjectInputStream ois = null;
GZIPInputStream gs = null;
Object result = null;
try {
fis = new FileInputStream(inFile);
gs = new GZIPInputStream(fis);
ois = new ObjectInputStream(gs);
MyBWT.rankArray = (int[]) ois.readObject();
String str= (String) ois.readObject();
//do something with the string
Единственная проблема заключается в том, что производительность кода в целом довольно низкая, поэтому я думаю о 2 вариантах:
для использования NIO для сопоставления сжатого файла с памятью и выполнения вышеуказанных действий со сжатым файлом памяти (я слышал, что это возможно, но я понятия не имею, так ли это на самом деле)
Вместо хранения объектов я мог бы просто сохранить сжатую двоичную версию текста и затем прочитать текст, я слышал, что это может быть быстрее, чем ObjectInputStream.
Кто-нибудь знает способ достижения вышеуказанных вариантов? или есть лучший способ, большое спасибо.