С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 39
1

Сереализация и десереализация объекта

01.03.2013, 20:29. Показов 983. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте.У меня проблема с сереализация и десереализация объекта.При компиляции программы выводить ексепшн виду java.io.StreamCorruptedException . В чем может быть проблема?Вот пример моего кода:
Java
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/**
     * Метод считование с объекта
     * @param f
     * @return al
     * @throws IOException
     */
    public ArrayList<Object> readObject(File f) throws IOException{
        ArrayList<Object> al = new ArrayList<Object>();
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
            try {
                al = (ArrayList<Object>)ois.readObject();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }finally{
                ois.close();
            }
        return al;
    }
    /**
     * Метод записи в ArrayList 
     * @param al
     * @param f
     * @throws IOException
     */
    public void writeObject(ArrayList<Object> al,File f ) throws IOException{
        ObjectOutputStream oos = null;
        try{
            oos = new ObjectOutputStream(new FileOutputStream(f));
            oos.writeObject(al);
        }catch(IOException e){
            e.printStackTrace();
        }finally{
            oos.close();
        }   
    }
            public void showObject(ArrayList<Object> al){
        for(Object o:al)
            System.out.println(o);
    }
          /**
         * Метод вибора случайной масти карты
         */
        public static String RandomNumberSuit() {
             String suit = " ";int k = 0;
             String[] suits = new String[] {"Spades","Diamonds","Hearts","Clubs" };
              Random r = new Random();
              k =  r.nextInt(4);
              suit = suits[k];
              return suit;
         }
        /**
         * Метод вибора случайной карты
         */
         public static String RandomNumberCard() {
             String card = " ";int k = 0 ;
             String[] cards = new String[] {"2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"};
             Random r = new Random();
             k = r.nextInt(13);
             card = cards[k];
             return card;
         }
         /**
          * Метод записи в файл
          * @param out
          * @throws IOException
          */
         public static  void WritingIntoFile(PrintWriter out) throws IOException {
             
              String suit1 = " "; String card1 = " ";
              String suit2 = " "; String card2 = " ";
              suit1 = RandomNumberSuit();
              card1 = RandomNumberCard();
              out.print(suit1);
              out.print("-");
              out.print(card1);
              out.print(";");
              suit2 = RandomNumberSuit();
              card2 = RandomNumberCard();
              out.print(suit2);
              out.print("-");
              out.print(card2);
              out.print(".");
              out.flush();
         }
         /**
          * Метод создание файла
          * @throws IOException
          */
         public static File CreateFile() throws IOException {
             File flt = new File("filePlayer.txt");
              PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(flt)));
              WritingIntoFile(out);
              out.close();
             return flt;
         }  
            //Исполнительный метод
 
            CSVproc  proc = new CSVproc();
         Player player = new Player();
         //-------------------------------
        File flt = player.CreateFile();
        
     /* ArrayList<String> als = new ArrayList<String>();
        als = proc.readString(flt);     
        proc.writeString(als, flt);
        proc.showString(als);*/
        //----------------------------
        ArrayList<Object> alo = new ArrayList<Object>();
        alo = proc.readObject(flt);
        proc.readObject(flt);
        proc.writeObject(alo,flt);
        proc.showObject(alo);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2013, 20:29
Ответы с готовыми решениями:

Десереализация
Здравствуйте. Подскажите пожалуйста. Значит есть сервер, сервер по сокету передаёт класс(через...

XML сереализация и десереализация
Все доброго времени суток. Я новичек, изучаю (ну как изучаю... мучаю) С#. Дошли руки до...

Десереализация объекта класса
Мне нужно сериализовать объект класса в клиенте и отправить на сервер. Реализована передача через...

Сереализация объекта в JSON и отправка на сервер
Всем привет хочу конвертировать объект в json и отправить его на сервер не знаю если моё решение...

3
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
01.03.2013, 20:45 2
на врайтере делайте flush() перед закрытием
0
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 39
02.03.2013, 02:11  [ТС] 3
Если вы имеете ввиду в методе WritingIntoFile, то там уже стоит flush , если в СreateFile , то я там поставил ,ошибка и не думает пропадать)Так что ,если я не так понял ,объясните поподробней)
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
02.03.2013, 02:28 4
У меня проблем нет, возможно у вас проблема не в сериализации, а ещё в чём то.
могу предполижить что объект что вы пытаетесь сериализовать не имплементит Serializable
Java
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
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class PlayCardsSerialization {
    public static void main(String[] args) throws IOException {
        PlayCardsSerialization pc = new PlayCardsSerialization();
        List<Integer> ai = Arrays.asList(new Integer[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
        pc.writeObject(ai, new File("tst"));
        List<Integer> a2 = (List<Integer>) pc.readObject(new File("tst"));
        pc.showObject(a2);
    }
 
    public List<? extends Serializable> readObject(File f) throws IOException {
        List<? extends Serializable> al = null;
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
        try {
            al = (List<? extends Serializable>) ois.readObject();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            ois.close();
        }
        return al;
    }
 
    public void writeObject(List<? extends Serializable> ai, File f) throws IOException {
        ObjectOutputStream oos = null;
        try {
            oos = new ObjectOutputStream(new FileOutputStream(f));
            oos.writeObject(ai);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            oos.close();
        }
    }
 
    public <T> void showObject(List<T> al) {
        for (T o : al)
            System.out.println(o);
    }
}
Bash
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
0
02.03.2013, 02:28
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2013, 02:28
Помогаю со студенческими работами здесь

Сереализация класс в файл
Здравствуйте. Пытаюсь реализовать сереализацию класса (имя ему GameData) в файл на С#. ...

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

Десереализация
я сериализовала array и записала его в byte data теперь мне нужно сделать обратный процесс...

Десереализация файла
Доброго времени суток. Извращаюсь как могу, пишу собственную БД в виде клиент-сервера. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru