Oct 28, 2008

Serijalizacija i Deserijalizacija

Posto smo ucili na zadnjem casu serijalizaciju i deserijalizaciju, zamolio bih Vas u koliko imate pitanja postavite ovdje .
Projekat koji smo radili postavljen je na sajtu.
Hvala

3 comments:

Djordje said...

Hej cao Dzenan. Vidi danas kad sam dozao kuci sam probao da radim ono sto si pricao za serijalizovanje objekat po objekat ali mislim da mi nije dobro jer ja u stvari ne serijalizujem listu.
Ja sam navikao da direktno serijalizujem lista od jednom pa ovaj drugi nacin malo me buni evo saljem ti kod koj sam malo sad kucao na slijedeci post.

Djordje said...

package student;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Scanner;

public class Student implements Serializable {

private String imePrezime;
private String brIndex;
private double prosijek;

public Student() {
imePrezime = "";
brIndex = "";
prosijek = 0;
}
//Podesava vrijednosti varijablama ovoj klasi
private void readFromKeyboard() {
Scanner sc = new Scanner(System.in);
System.out.println("Ime i pezime: ");
imePrezime = sc.nextLine();
System.out.println("Br.Index: ");
brIndex = sc.nextLine();
System.out.println("Prosijek: ");
prosijek = Double.parseDouble(sc.nextLine());
}

public void serialize(ObjectOutputStream out) {

readFromKeyboard();

try {
out.writeObject(this);
} catch (IOException e) {
e.printStackTrace();
}
}

public String getImePrezime() {
return imePrezime;
}

public void setImePrezime(String imePrezime) {
this.imePrezime = imePrezime;
}

public String getBrIndex() {
return brIndex;
}

public void setBrIndex(String brIndex) {
this.brIndex = brIndex;
}

public double getProsijek() {
return prosijek;
}

public void setProsijek(double prosijek) {
this.prosijek = prosijek;
}

@Override
public String toString() {
return getImePrezime() + " " + getBrIndex() + " " + getProsijek();
}
}
///////////////////////////////////////////////
package student;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.stream.FileImageInputStream;

public class Ucionica {

private List(Student)anfiteatar;
private int kolicina;

public Ucionica(int kolicina) {
this.kolicina = kolicina;
anfiteatar = new ArrayList(Student)(kolicina);
}

public void serijalizujUFajl(String imeFajl) {

File f = new File(imeFajl + ".ser");

try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f));

for (int i = 0; i < kolicina; i++) {
Student s = new Student();
s.serialize(oos);
anfiteatar.add(s);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public void deserializujFajl(String imeFajl) {

try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(imeFajl));
ArrayList (Student) temp = new ArrayList(Student)();

for (int i = 0; i < kolicina; i++) {
Student s = (Student) in.readObject();
System.out.println(s);
temp.add(s);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
////////////////////////////////
package test;

import student.Ucionica;

public class Test {

public static void main(String[] args) {

Ucionica u = new Ucionica(3);

//u.serijalizujUFajl("ucionica");
u.deserializujFajl("ucionica.ser");
}
}

Djordje said...

Onamo kod liste sam ovde samo ostavio zagtade () namijesto znakove vece manje jer me ovaj blog misle da su to html tagove