У меня есть несколько сжатых строк (по 1,5 М каждый), хранящихся в файле. Мне нужно прочитать их и сделать некоторые вычисления на них. В принципе, вот что я сделал:
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
Единственная проблема в том, что производительность кода в целом довольно низкая, поэтому я думаю о двух вариантах:
использовать NIO для сопоставления сжатого файла с памятью и сделать вышеописанное со сжатым файлом в памяти (я слышал, что это может быть достижимо, но я понятия не имею, так ли это на самом деле)
Вместо хранения объектов я мог бы просто сохранить сжатую двоичную версию текста, а затем прочитать текст, я слышал, что это может быть быстрее, чем ObjectInputStream.
Кто-нибудь знает способ достижения вышеуказанных параметров? или есть лучший способ, большое спасибо.