Я схожу с ума, я создал файл-объект, поэтому его можно прочитать с помощью ObjectInputStream, и я разместил папку с ресурсами. Метод работает с файлом, меньшим, чем 1M, и дает ошибку с большими файлами. Я читал, что это предел платформы Android, но я также знаю, что можно «легко» избежать. Те, кто загрузил игру Reging Thunder, например, могут легко увидеть, что в их папке с файлами находится файл размером 18.9M. Это мой код для чтения 1 объекта из ObjecInputStreamЗагрузите файлы размером более 1 М из папки с файлами
File f = File.createTempFile("mytempfile", "dat");
FileOutputStream fos = new FileOutputStream(f);
InputStream is = mc.getAssets().open(path,3);
ObjectInputStream ois=new ObjectInputStream(is);
byte[] data = (byte[]) ois.readObject();
fos.write(data);
fos.flush();
fos.close();
ois.close();
is.close();
теперь у меня есть несжатый файл, и я могу использовать его, не заботясь об ошибке «Этот файл не может быть открыт как файловый дескриптор, это, вероятно, сжатый "
Эта функция хорошо работает с файлами размером менее 1 М, с большими файлами возвращает java.io.IOException в строке« ObjectInputStream ois = new ObjectInputStream (is); »
почему ??
спасибо за ответ. Но какой инструмент вы используете, чтобы вырезать свой большой db на каждый меньший кусок? – anticafe
Пробовал несколько готовых бесплатных программ, затем написал другой. :) Это 20-строчный фрагмент в прямом C. –
на linux и mac есть инструмент командной строки, называемый split. – mclin