2013-04-16 2 views
0

Я предполагаю, что это будет возможно с помощью потоков, но как именно?Как скомпилировать файлы в одном файле, когда память ограничена?

Моя догадка на данный момент использовать библиотеку либо для Json или Xml.

В настоящее время, есть библиотеки, и я видел, обучающие программы, которые могут анализировать и записывать JSON/XML очень эффективно, используя только один элемент, в то время (т.е. https://sites.google.com/site/gson/streaming)

Основной проблемой является то, что существует не так много элементы в моем окончательном json/xml, но значения моих элементов довольно велики!

Представьте, принимая весь файл и кодирования его как-то в строку, чтобы вы могли иметь json с элементом вроде этого: "file1": "AAFA252265VFAAAAER............"< --- это строка слишком длинная для текущей доступной памяти

ответ

0

Ok Не беспокойтесь, я нашел решение, и я делюсь им здесь.

Well GSON - с открытым исходным кодом, поэтому вы можете видеть, как это работает.
Существует множество методов для записи значения json, но ни один из них не работает с потоком.
Других слов GSON библиотека это само пишет на потоке, но нет такого метода, как writer.value(stream)

Solutions:

Более элегантного: Один из способов, конечно, является то, что вы могли бы переопределить метод или просто скопировать весь метод и написать новый свой собственный.

пустышки, но быстрее: Создать JSon массив. Поэтому вместо написания одной строки json вы пишете несколько строк json, принадлежащих массиву. Длина каждой строки, конечно, зависит от того, сколько памяти у вас есть!
Чтение этой строки массива строкой с помощью считывателя GSON воссоздает файл.

Примечание: Вы должны использовать какую-то кодировку для записи файла в строку

Смежные вопросы