Имам няколко компресирани низа (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.
Някой знае ли начин за постигане на горните опции? или има по-добър начин, благодаря много.