Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как записать несколько объектов в одну XML-строку или файл? / 16 сообщений из 16, страница 1 из 1
02.05.2006, 20:36
    #33702656
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Привет,
в моем приложении генерируются объекты, которые я хочу в последующем использовать. Банка данных не предусматривается. Т.е. идея в том, чтобы все объекты необходимые преобразовывать в XML и записывать в файл.

Проблема в том, чтобы записать и прочитать не один объект, а несколько и причем разных типов. Это возможно?

На данный момент без проблем получается записывать единичные объекты в файл и затем прочитать их из него. Тоже самое и с предварительной "конвертацией" объектов в XML.

Какие будут идеи?
...
Рейтинг: 0 / 0
02.05.2006, 20:48
    #33702674
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
сериализировать объекты и сохранять в файл
...
Рейтинг: 0 / 0
02.05.2006, 20:50
    #33702675
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Так я и делаю. Вопрос в том, как множество объектов в один файл записать и потом считать?
...
Рейтинг: 0 / 0
02.05.2006, 22:22
    #33702776
stdio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
NeulingТак я и делаю. Вопрос в том, как множество объектов в один файл записать и потом считать?записать друг за другом последовательно в поток, а потом так же считать
...
Рейтинг: 0 / 0
02.05.2006, 22:57
    #33702812
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
stdioзаписать друг за другом последовательно в поток, а потом так же считать

записать одно за другим вроде получается. Например, вот фрагмент моего кода:
Код: plaintext
1.
2.
3.
4.
String xmlString = ObjectsWorker.serializeObjectToXmlString(g1);
String xmlString1 = ObjectsWorker.serializeObjectToXmlString(g2);
xmlString1+=xmlString;
Tools.writeToFile(xmlString1, "xml.txt");	
теперь в файле записаны 2 объекта.
А как считать их по очереди? Можно пример кода какой-нибудь?
...
Рейтинг: 0 / 0
02.05.2006, 23:58
    #33702839
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
XMLEncode/XMLDecode не подойдет?

======================
- Я подхожу к клетке с медведем панда...
Видите, какие у него черные круги под глазами?!
Медведь панда как бы всем своим видом говорит нам: "Не бухайте!"
======================
...
Рейтинг: 0 / 0
03.05.2006, 00:06
    #33702847
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
а поподробней?
...
Рейтинг: 0 / 0
03.05.2006, 00:33
    #33702857
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Пожалуйста:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
 package  ru.licvidator.test.xmlencoding;

 import  java.io.*;

 public   class  TestClass  implements  Serializable
{
     public  String value1;
     public  String value2;
     public   int  value3;
    
     public  String toString()
    {
         return  value1+":"+value2+":"+value3;
    }

     public   int  getValue3() {
         return  value3;
    }

     public  String getValue2() {
         return  value2;
    }

     public   void  setValue1(String value1) {
         this .value1 = value1;
    }

     public   void  setValue3( int  value3) {
         this .value3 = value3;
    }

     public   void  setValue2(String value2) {
         this .value2 = value2;
    }

     public  String getValue1() {
         return  value1;
    }
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
 package  ru.licvidator.test.xmlencoding;

 import  java.beans.*;
 import  java.io.*;

 public   class  Main {
     public  Main() {
    }

     public   static   void  main(String[] args)
    {
         try 
        {
            encode();
            decode();
        }
         catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
    
     public   static   void  encode()  throws  Exception
    {
        XMLEncoder xmlEnc =  new  XMLEncoder( new  FileOutputStream("test.xml"));
        Object obj1 =  new  Object();
        Integer int1 =  new  Integer( 10 );
         Double  dbl1 =  new   Double ( 10 . 0 );
        String str1 =  new  String("hello");
        TestClass tcl1 =  new  TestClass();
        tcl1.value1 = "1";
        tcl1.value2 = "2";
        tcl1.value3 =  3 ;
        
        xmlEnc.writeObject(obj1);
        xmlEnc.writeObject(int1);
        xmlEnc.writeObject(dbl1);
        xmlEnc.writeObject(str1);
        xmlEnc.writeObject(tcl1);
        
        xmlEnc.flush();
        xmlEnc.close();
    }
    
     public   static   void  decode()  throws  Exception
    {
        XMLDecoder xmlDec =  new  XMLDecoder( new  FileInputStream("test.xml"));
        Object obj1 = xmlDec.readObject();
        Integer int1 = (Integer)xmlDec.readObject();
         Double  dbl1 = ( Double )xmlDec.readObject();
        String str1 = (String)xmlDec.readObject();
        TestClass tcl1 = (TestClass)xmlDec.readObject();

        System.out.println("OBJ1: "+obj1);
        System.out.println("INT1: "+int1);
        System.out.println("DBL1: "+dbl1);
        System.out.println("STR1: "+str1);
        System.out.println("TCL1: "+tcl1);
        
        xmlDec.close();
    }
}

Обрати внимание на наличие сеттеров и геттеров у моего класса. Для сериализации они должны присутствовать.

======================
- Я подхожу к клетке с медведем панда...
Видите, какие у него черные круги под глазами?!
Медведь панда как бы всем своим видом говорит нам: "Не бухайте!"
======================
...
Рейтинг: 0 / 0
03.05.2006, 10:17
    #33703307
коты
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Обрати внимание на наличие сеттеров и геттеров у моего класса. Для сериализации они должны присутствовать.



не факт - у тебя переменные паблик
...
Рейтинг: 0 / 0
03.05.2006, 12:37
    #33703704
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Я вижу 2 проблемы:
1. заранее (при чтении) неизвестно сколько объектов в файле записано.
т.е. нужно какой-то цикл организовать. Это наверняка возможно, пока не знаю как.

2. заранее неизвестно какие типы (классы) записаны в файле. Т.е. при чтении неизвестно, как их кастовать.
Есть ли решение этой проблемы? Если да, то какое?

Как вам такая идея: перед тем как записывать объекты в файл, записать каким-то образом их количество и классы (как?) в отдельный файл. И потом при необходимости чтения (генерации) объектов, сначала прочитать этот файл, узнать какие объекты и сколько их и затем прочесть их все из файла.
...
Рейтинг: 0 / 0
03.05.2006, 12:49
    #33703752
jnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
ну классы можно подгрузить через класслоадер как JDBC. естессно что они должны быть наследованы от одного предка.
...
Рейтинг: 0 / 0
03.05.2006, 12:53
    #33703771
Tomaso
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Vozmi list zapihaj tuda objekti.Seraliziruj list v fauil.
...
Рейтинг: 0 / 0
03.05.2006, 15:07
    #33704321
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
TomasoSeraliziruj list v fauil.
не понял, что такое fauil?

Если можно подробнее, как я потом эти объекты из листа буду кастовать?
...
Рейтинг: 0 / 0
03.05.2006, 16:42
    #33704668
Tomaso
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Neuling TomasoSeraliziruj list v fauil.
не понял, что такое fauil?

Если можно подробнее, как я потом эти объекты из листа буду кастовать?
V fail(naprimer list.ser).Ja dumaju, 4to u tebja budut opredeljonnie objecti.if (eeee instanceof aaaa){}.Eto pokatit esli u tebja est' opredeljonnie objeckti,a ne vsjo popalo(desatki ifof budut).
...
Рейтинг: 0 / 0
03.05.2006, 17:45
    #33704916
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Спасибо,

пока сделал промежуточное решение. Т.е. каждый тип объектов сохраняется в отдельный файл. Так как типов и соотв. файлов не очень много, можно и оставить.
Но в идеале, хотелось бы иметь просто один XML-файл, в котором все объекты храняться.

Tomasoeeee instanceof aaaa
мне кажется это не очень поможет, если говорить об идеальном решении (с одним файлом). Так как перед тем как у меня будет объект, мне его уже надо будет кастануть.
Хотя попробую, может и прокатит. Вечером напишу
...
Рейтинг: 0 / 0
03.05.2006, 22:33
    #33705391
Neuling
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как записать несколько объектов в одну XML-строку или файл?
Да, вроде работает (нужно только все в XML еще переделать).

Сделал так: все объекты сначала добавляю в Лист, который затем сериализирую и сохраняю в файле.

Затем когда нужно инициализировать объекты, создаю новый лист и десериализирую из файла в этот лист.

Затем прохожусь итератором по листу и опрашиваю, какого типа объект с помощью instanceof. И соответственно генерирую подходящий объект.

Так как типов немного, получается не очень сложно.

Всем спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как записать несколько объектов в одну XML-строку или файл? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]