Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение данных 
:(
    Опции темы
Reptor
Дата 12.9.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Вопрос состоит в следующем: мне необходимо сохранять много текстовой инфрмации (ну это своего рода различные настройки приложения ) так как луче сделать сохранять их в XML или обычном текстовом файле. Дело в том что эти настройки в дальнеёшем можно будет открывать и использовать в 2-ом приложении (это приложение может быть написано на 2-ом языке). ?

И на этой почве ещё один вопрос как в Java обстоит работа с XML и файлами?
PM MAIL ICQ   Вверх
_Y_
Дата 12.9.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Ну это по вкусу. smile 

С XML в Java обстоит хорошо. Единственно, ИМХО, не стоит использовать dom классы, которые она предлагает по умолчанию. Лучше взять jar с dom4 (У меня dom4j-1.6.1.jar но может есть версия и новее). Но это, естественно, если собираетесь работать с DOM.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Reptor
Дата 12.9.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



_Y_, а где есть документация желательно на русском по работе JAVA + XML 

Цитата

 Лучше взять jar с dom4 (У меня dom4j-1.6.1.jar но может есть версия и новее


где можно скачать эту библиотеку.

Цитата

 Но это, естественно, если собираетесь работать с DOM.


Не совсем понял а без Dom это что имеется ввиду?
PM MAIL ICQ   Вверх
jManiak
Дата 12.9.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 6.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 1



java.util.Properties
PM MAIL ICQ   Вверх
tux
Дата 12.9.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Цитата(Reptor @  12.9.2007,  15:27 Найти цитируемый пост)
Не совсем понял а без Dom это что имеется ввиду? 

SAX, например.
PM MAIL Skype GTalk Jabber YIM   Вверх
_Y_
Дата 12.9.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(Reptor @ 12.9.2007,  15:27)
а где есть документация желательно на русском по работе JAVA + XML 

Не знаю. Доки, но они на английском. Может Googl поможет?

Цитата(Reptor @ 12.9.2007,  15:27)
Цитата
 Лучше взять jar с dom4
где можно скачать эту библиотеку

http://www.dom4j.org

Цитата(Reptor @ 12.9.2007,  15:27)
Не совсем понял а без Dom это что имеется ввиду?

XML может обрабатываться как единый документ (модель DOM), а может - посредством генерации событий (модель SAX).  В поледнем случае можно работать с документами любого размера - в памяти все равно они не остаются. Это не только в Java, но и в других языках - две модели на выбор. Но я работал только с DOM.

Добавлено @ 16:30
Цитата(jManiak @ 12.9.2007,  16:14)
java.util.Properties

Вряд-ли годиться, т.к. ему надо использовать те же установки программами, написанными на других языках.

Это сообщение отредактировал(а) _Y_ - 12.9.2007, 16:31


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Reptor
Дата 12.9.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Ну и всётаки что луче по вашему DOM или SAX?
PM MAIL ICQ   Вверх
_Y_
Дата 12.9.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(Reptor @ 12.9.2007,  17:09)
Ну и всётаки что луче по вашему DOM или SAX?

Что лучше, кошка или собака? Я бы сказал, что для небольших количеств информации удобнее DOM, но если ее столько, что памяти жалко, то только SAX.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Reptor
Дата 12.9.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



а вот если я поработал с DOM забрал все данные которые мне необходимы то память почле этого же освобождается?
PM MAIL ICQ   Вверх
COVD
Дата 12.9.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Цитата

а вот если я поработал с DOM забрал все данные которые мне необходимы то память почле этого же освобождается?


Со временем gc очистит память.

Мы пробуем сейчас сохранять свойства программы в xml с помощью java.bean.XMLEncoder/Decoder. При закрытии программы создается обьект, хранящий текущие параметры программы. С помощью анкодера предполагаем получать xml, который сохраняется на сервере. При старте программы xml загружается в программу и с помощью декодера восстанавливается обьект установок. XML предпочли потому, что параметров очень много. В использованием Preferences не устроило то, что свойства пишутся в регистр и приложение (JNLP) должно иметь соответствующие права. Такой подход годится только для использования одним приложением.

Это сообщение отредактировал(а) COVD - 12.9.2007, 18:31
PM MAIL   Вверх
Tony
Дата 12.9.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: нет
Всего: 12



классы XMLEncoder i XMLDecoder из java.util.  smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
COVD
Дата 12.9.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



точнее, в java.beans
PM MAIL   Вверх
_Michael
Дата 12.9.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 2
Всего: 6



Цитата(COVD @  12.9.2007,  18:12 Найти цитируемый пост)
Со временем gc очистит память.

А если с SAX работать то память не gc освобождает? также со временем?

Добавлено через 2 минуты и 56 секунд
Цитата(Tony @  12.9.2007,  20:34 Найти цитируемый пост)
классы XMLEncoder i XMLDecoder из java.util. 


Tony,  у меня JDK 1.5 и в java.util нет етих классов. Но зато они есть в java.beans smile


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
COVD
Дата 12.9.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



DOM загружает в память сразу весь xml документ, потом начинает его парсировать. Может так случиться, что памяти не хватит, чтобы весь документ загрузить. 

SAX загружает кусочек документа, парсирует его и освобождает, потом загружает следующий кусочек, снова парсирует и освобождает, ...

В обоих случаях gc будет чистить память, но легче ему будет с SAX, т.к. загружаемые порции более мелкие.
PM MAIL   Вверх
y3u
Дата 13.9.2007, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



Цитата(Reptor @  12.9.2007,  18:09 Найти цитируемый пост)
Ну и всётаки что луче по вашему DOM или SAX? 

если надо редактировать дерево в коде - DOM.
если нет - то SAX.
все просто...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Aoli
Дата 13.9.2007, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 24.1.2007

Репутация: 1
Всего: 0



Цитата

ну это своего рода различные настройки приложения 

Может, тогда проще писать в файл пропертей?
Зачем генерить xml, затем ее читать, когда можно просто просетать нужные свойства и сохранить в файл?
И, кстати, класс ResourceBundle может сохранять как properties файл, так и xml.
PM WWW ICQ   Вверх
AlexeyVorotnikov
Дата 13.9.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 10
Всего: 18



Цитата(_Y_ @  12.9.2007,  18:20 Найти цитируемый пост)
Что лучше, кошка или собака?

Кошка однозначно smile


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Reptor
Дата 13.9.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



А можно какието примеры по работе с настройками ну или как работать с XML создавать его редактировать, открывать и читать с него? И как его подключить себе? 
PM MAIL ICQ   Вверх
COVD
Дата 13.9.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Цитата(Aoli @ 13.9.2007,  06:52)
Может, тогда проще писать в файл пропертей?
Зачем генерить xml, затем ее читать, когда можно просто просетать нужные свойства и сохранить в файл?

Проперти - это просто список параметр=значение. Удобно для простых случаев. Теперь представьте, что пользователь открывает в приложении несколько окон. При закрытии программы надо сохранить, например, текущие размеры, позицию каждого окна и состояния чекбоксов. Список свойств становится динамическим (количество параметров)  и принимает вид окно.параметр=значение . Если внутри окна есть вложенные компоненты , то окно.компонент.параметр=значение.  И это надо программировать очевидно вручную. А использование xml позволяет автоматизировать этот процесс благодаря наличию парсеров.
PM MAIL   Вверх
Aoli
Дата 13.9.2007, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 24.1.2007

Репутация: 1
Всего: 0



Цитата

Удобно для простых случаев

Абсолютно согласен.
Я имею в виду, что для простых случаев можно воспользоваться простыми решениями smile
PM WWW ICQ   Вверх
Reptor
Дата 13.9.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Да у меня как раз сложный случай всё как писал COVD, подскажите пожалуста доки на русском или готовые хорошие примеры по работе с XML
PM MAIL ICQ   Вверх
y3u
Дата 13.9.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



Цитата(COVD @  13.9.2007,  17:39 Найти цитируемый пост)
И это надо программировать очевидно вручную


кхе, эта, ключик для бандла сформировать на основе типа, имени компонента и его иерархии сложно? По-моему гораздо сложнее в данном случае писать DOM модель, т.к. данные, очевидно, придется сохранять. DOM модель, суть - дерево, иерархия компонентов - дерево. Дерево будем строить, типо, второй раз? Удобство лично для меня сомнительно... проперти проще. К тому же проперти можно (и удобно) разнести на разные бандлы для различных целей, а если надо разнести XML-ник, придется писать парсеры и домифайеры на каждый формат... Сейчас вы мне скажете про универсальный формат, угу, непомерных размеров, в котором без XML Spy не разберешься... да и весить он будет в 3 раза больше пропертей по причине избыточной информации...

ПыСы
кстати, если задуматься о записи, если предположить, что у нас пропертисы, ну, или , там, XML-ник запакован в jar либо в war/ear, то встает законный вопрос, куда писать.... советую глянуть в сторону http://java.sun.com/javase/6/docs/api/java...ge-summary.html
http://java.sun.com/javase/6/docs/api/java...references.html

Это сообщение отредактировал(а) y3u - 13.9.2007, 20:12


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
COVD
Дата 13.9.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Цитата

кстати, если задуматься о записи, если предположить, что у нас пропертисы, ну, или , там, XML-ник запакован в jar либо в war/ear, то встает законный вопрос, куда писать.... 


Preferences мы откинули по причине того, что у нас webstart клиент и не хочется его подписывать, а иначе у него нет необходимых прав куда-то писать. Он вступает в диалог с пользователем, а нам этого не надо. Кроме того еще неизвестно, поможет ли подписка пользователям, которые работают из офиса и не имеют административных прав на своем служебном компьютере (всеобщая озабоченность безопасностью). Поэтому мы будем писать только на сервер. А вообще конечно это удобно.

Цитата

кхе, эта, ключик для бандла сформировать на основе типа, имени компонента и его иерархии сложно?


Про ключик я не знаю как и что. Буду благодарен, если намекнете. Но и Дом модель писать тоже вроде не надо. Предполагаем, что каждый компонент вернет обьект - java bean (тут уж вручную, наверное, только нужные свойства), и этот бин через  java.beans.XMLEncoder/Decoder будем превращать в xml и обратно.

to Reptor

у вас требование, чтобы свойства можно было восстановить в другой программе и возможно написанной на другом языке, поэтому использование java.beans.XMLEncoder/Decoder возможно не лучший для вас вариант (для нас возможно тоже  smile  ).


Это сообщение отредактировал(а) COVD - 13.9.2007, 21:37
PM MAIL   Вверх
y3u
Дата 14.9.2007, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



Цитата(COVD @  13.9.2007,  22:28 Найти цитируемый пост)
Поэтому мы будем писать только на сервер

а куда на сервер? Если в FS, тогда вопрос: а если клентов хотя бы 1000 и каждому по метру на настройки - это уже гиг, квотировать, таки, придется иначе со временем сожрется вся память. Рулить квотами кто будет? А мониторинг неиспользуемых настроек тоже придется писать... А если в БД, ну, в принципе, если бабла не жалко, можно организовать под эту, в общем-то, бесполезную информацию, отдельный сервак, тогда да, согласен... 
Эта, может, таки, подписать?

Цитата(COVD @  13.9.2007,  22:28 Найти цитируемый пост)
Он вступает в диалог с пользователем

и что? Виндовз тоже вступает с пользователем в диалог, когда юзер пытается удалить файл, Аутпост Файерволл или какой-нить Зоналарм, тоже вступают с пользователем в диалог, когда находятся в режие обучения. Я вас умоляю, на дворе 21 век, все умеют пользоваться компам, даже дети малые, чего такого страшного в диалоге? Это же нормально...

Добавлено через 7 минут и 35 секунд
кстати, впомнил, что у апачча в коммонсах видел полезную тулу, думаю, всех спасет smile

http://commons.apache.org/configuration/

Это сообщение отредактировал(а) y3u - 14.9.2007, 08:39


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
COVD
Дата 14.9.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Цитата(COVD @  13.9.2007,  22:28 Найти цитируемый пост)
Поэтому мы будем писать только на сервер


Цитата

а куда на сервер? Если в FS, тогда вопрос: а если клентов хотя бы 1000 и каждому по метру на настройки - это уже гиг, квотировать, таки, придется иначе со временем сожрется вся память. Рулить квотами кто будет? А мониторинг неиспользуемых настроек тоже придется писать... А если в БД, ну, в принципе, если бабла не жалко, можно организовать под эту, в общем-то, бесполезную информацию, отдельный сервак, тогда да, согласен... 


FS - это file system? Что такое гиг. 21 век smile. В БД будем писать. Опять же это мобильность для клиента - утром соединился из офиса, вечером из дома.  

Цитата

Эта, может, таки, подписать?


Конечно, правильнее подписать. Не подписывать скорее бизнес установка, чем техническое решение. Но все же, как я выше отметил, нет уверенности, что это снимет все проблемы для офисных клиентов.

Цитата(COVD @  13.9.2007,  22:28 Найти цитируемый пост)
Он вступает в диалог с пользователем


Цитата

и что? Виндовз тоже вступает с пользователем в диалог, когда юзер пытается удалить файл, Аутпост Файерволл или какой-нить Зоналарм, тоже вступают с пользователем в диалог, когда находятся в режие обучения. Я вас умоляю, на дворе 21 век, все умеют пользоваться компам, даже дети малые, чего такого страшного в диалоге? Это же нормально...


Вот именно. Дети как раз лучше умеют. Ничего не боясь жмут на кнопку Ok. А публика по другую сторону экватора - не всегда. Вы тоже считаете, что установить java-плагин на компьютер проще пареной репы? 

Конечно, проблема видится не в диалоге, а в том, что он просит дать доступ и т.д. Но вы правы, прогресс не остановить smile.


Добавлено @ 08:44
кстати, впомнил, что у апачча в коммонсах видел полезную тулу, думаю, всех спасет smile

http://commons.apache.org/configuration/

Спасибо!
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.