Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / СЕРИАЛИЗАЦИЯ+XML / 4 сообщений из 4, страница 1 из 1
07.06.2004, 19:01
    #32551397
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СЕРИАЛИЗАЦИЯ+XML
Может я торможу, но почему при сохранении в файл, не пишутся

p.name = "Froot Loops";
p.sal = 12;
p.id = 1;
?????
------------
import java.*;
import java.io.*;
import java.beans.XMLEncoder;


public class Person implements Serializable {
String name;
public float sal;
int id;
public Person() {
}

public static void main(String args[]) {

try {
Person p = new Person();
p.name = "Froot Loops";
p.sal = 12;
p.id = 1;

XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("Test1.xml")));

e.writeObject(p);
e.close();
} catch (IOException e) {
System.err.println(
"Problems saving state");
}
}
}
-------------------

Результат:Test1.xml

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.2_04" class="java.beans.XMLDecoder">
<object class="ser.Person"/>
</java>
...
Рейтинг: 0 / 0
07.06.2004, 19:58
    #32551460
lengom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СЕРИАЛИЗАЦИЯ+XML
1. Класс мемберы должны быть public
2. Не используйте примитивные типы (вместо них должны бытьт wrapper-ы)

То есть, если заменить Ваш класс на

public class Person implements Serializable {
public Person() {}
public String name;
public Float sal;
public Integer id;
}

должно работать
...
Рейтинг: 0 / 0
08.06.2004, 12:27
    #32552186
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СЕРИАЛИЗАЦИЯ+XML
2lengom
Не в этом дело... попробовал конечно для очистки совести
и объявил как паблик и заменил примитивные типы

import java.*;
import java.io.*;
import java.beans.XMLEncoder;
import javax.swing.*;

public class Person implements Serializable {
public String name;
public Float sal;
public Integer id;
public Person() {
}

public static void main(String args[]) {

try {
Person p = new Person();
p.name = (String)"Froot Loops";
p.sal = new Float(123);
p.id = new Integer(1);

XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("Test1.xml")));

//e.writeObject(new JButton("Hello, world"));
e.writeObject(p);
e.close();
} catch (IOException e) {
System.err.println(
"Problems saving state");
}
}
}


------------
вот пример из хелпа

XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("Test.xml")));
e.writeObject(new JButton("Hello, world"));
e.close();
а получается такой Test.xml

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.2_04" class="java.beans.XMLDecoder">
<object class="javax.swing.JButton">
<string>Hello, world</string>
</object>
</java>
...
Рейтинг: 0 / 0
08.06.2004, 14:27
    #32552503
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СЕРИАЛИЗАЦИЯ+XML
Помог Blazkowicz с форума по яве с rsdn
надо сделать геттеры и сеттеры для проертей. И всё заработает.
т.е.
...
public class Person implements Serializable {
public String name;
public Float sal;
public Integer id;
public Person() {
}
public String getName()
{
return name;
}
public void setName(String a)
{
this.name = a;
}

...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / СЕРИАЛИЗАЦИЯ+XML / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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