sérialisation XML en java Avec des Matrice ArrayList
Bonjour,
je veut sauvegardé les élément de ma matrice "mat_val" dans un fichier xml.
j'ai suivit la norme qui dit:
- un constructeur sans paramètre ;
- des méthodes d'accès aux données (set et get )
Citation:
Si dans votre classe vous oubliez de mettre un getter ou un setter, l'attribut en question ne sera pas sauvegardé ! Cela vous permettra par exemple de choisir ce que vous voudrez sauvegarder... Une autre petite chose : pour utiliser la "sérialisation XML", la classe n'a pas obligatoirement besoin d'implémenter Serializable .
Mais les élément ne son pas sauvegardé quand j'ouvre le fichier xml il est vide.
le voila:
Code:
1 2 3 4 5
|
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_0" class="java.beans.XMLDecoder">
<object class="compdecomp_jpeg.Formule"/>
</java> |
je ne comprenant pas pour quoi ?! :? si quelqu'un peu dire ce que je doit faire.
viola le code:
Code:
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
|
package compdecomp_jpeg;
import java.beans.XMLEncoder;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
public class Formule {
private transient static ArrayList<ArrayList<Double>> qi = new ArrayList<ArrayList<Double>>(),
qj = new ArrayList<ArrayList<Double>>(); //Non je ne veut pas sérialisé
//Déclaration de la 1 sur 64 matrice
private static ArrayList<ArrayList<Double>> mat_val = new ArrayList<ArrayList<Double>>();
public Formule() {
double tpi=0;
for(int u=0; u < 8; u++)
{
ArrayList<Double> tempi = new ArrayList<Double>();
for(int i=0; i < 8; i++)
{
tpi= (((2 * (double)i +1) * (double)u * (22/ (double)7)) / (double)16);
tempi.add(tpi);
}
qi.add(tempi);
}
/////////////////////////
/////////////////////////
double tpj=0;
for(int v=0; v < 8; v++)
{
ArrayList<Double> tempj = new ArrayList<Double>();
for(int j = 0; j < 8; j++)
{
tpj = ( (2 * (double)j + 1) * (double)v * (22/ (double)7) / (double)16);
tempj.add(tpj);
}
qj.add(tempj);
}
/////////////////////////
/////////////////////////
}
public void affiche_Mtrice(ArrayList<ArrayList<Double>> matrice) {
for (int i=0; i< matrice.size(); i++) {
for (int j=0; j< matrice.get(i).size(); j++) {
System.out.print("\t" + matrice.get(i).get(j));
}
System.out.println();
}
}
///////////////////////////////////////////////
/* Accesseurs et mutateurs */
//////////////////////////////////////////////
public ArrayList<ArrayList<Double>> getMat_val() {
return mat_val;
}
public void setMat_val(ArrayList<ArrayList<Double>> set_mat_val) {
this.mat_val = set_mat_val;
}
////////////////////////////////////////////////
public static void main(String[] args) throws FileNotFoundException {
/////////////////////////
Formule qi_qj_calculer = new Formule();
/////////////////////////
double tmp =0;
/* for(int u=0; u < qi.size(); u++)
{
for(int i=0; i < qi.get(u).size(); i++)
{ */
int u=0, i=0; //Appelle de fonction avec c'est paramétre
for(int v=0; v < qj.size(); v++)
{
ArrayList<Double> tempv = new ArrayList<Double>();
for(int j=0; j < qj.get(v).size(); j++)
{
tmp = (Math.cos(qi.get(u).get(i)) * Math.cos(qj.get(v).get(j)));
tempv.add(tmp);
}
mat_val.add(tempv); //C'est la que en ajout une ligne dans mat_val
}
//C'est la que l'on doit crée notre fichier xml(u,v) de la matrice mat_val
System.out.println("\n");
qi_qj_calculer.affiche_Mtrice(mat_val);
/* }
System.out.println("\n");
} */
/////////////////////
XMLEncoder enc = new XMLEncoder(new FileOutputStream("fichier.xml"));
enc.writeObject(qi_qj_calculer);
enc.flush();
enc.close();
}
} |
Merci d'avance.
ps : je suis sous NetBeans IDE 6.1