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

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

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

Какие будут идеи?
...
Рейтинг: 0 / 0
Как записать несколько объектов в одну XML-строку или файл?
    #33702674
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сериализировать объекты и сохранять в файл
...
Рейтинг: 0 / 0
Как записать несколько объектов в одну XML-строку или файл?
    #33702675
Neuling
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так я и делаю. Вопрос в том, как множество объектов в один файл записать и потом считать?
...
Рейтинг: 0 / 0
Как записать несколько объектов в одну XML-строку или файл?
    #33702776
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeulingТак я и делаю. Вопрос в том, как множество объектов в один файл записать и потом считать?записать друг за другом последовательно в поток, а потом так же считать
...
Рейтинг: 0 / 0
Как записать несколько объектов в одну XML-строку или файл?
    #33702812
Neuling
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как записать несколько объектов в одну XML-строку или файл?
    #33702839
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLEncode/XMLDecode не подойдет?

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

Код: 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
Как записать несколько объектов в одну XML-строку или файл?
    #33703307
коты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обрати внимание на наличие сеттеров и геттеров у моего класса. Для сериализации они должны присутствовать.



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

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

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

Если можно подробнее, как я потом эти объекты из листа буду кастовать?
...
Рейтинг: 0 / 0
Как записать несколько объектов в одну XML-строку или файл?
    #33704668
Tomaso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как записать несколько объектов в одну XML-строку или файл?
    #33704916
Neuling
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо,

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

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

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

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

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

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

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


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