Bonjour,

Je travaille sur un projet de génération de diagramme dia à partir d'un fichier Excel. Afin d'être correctement interprété par Dia, le fichier généré doit commencer par les octets FFFE (caracètre BOM - Byte Ordre Mark). Je ne parviens pas à écrire ce caractère en début de fichier. Pouvez-vous m'aider ?

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
//copie de l'en-tête type de dia, avec le BOM
	FileInputStream in=new FileInputStream("Header.dia");
	FileOutputStream out=new FileOutputStream(strChemin);
	FileChannel src=in.getChannel();
	FileChannel dest=out.getChannel();
	src.transferTo(0, src.size(), dest);
	src.close();
	dest.close();
//a ce niveau, le fichier généré contient bien le BOM
 
	bw=new BufferedWriter(new FileWriter(new File(strCheminFichier), true));
	strTemp="\n";
	bw.write(strTemp);
	bw.flush();
	for (int i=0; i<nbNoeud; i++)
	{
	(...)
	//tous les arguments ci-dessous sont de type String
	bw.write(strBackground+currentNoeud.getConstat()+strEndString+strNewLine);
	bw.flush();
	//a la fin de la premiere boucle, le fichier contient toujours le BOM
	//après la deuxième boucle, le fichier ne contient plus le BOM !
	}
	bw.close();
Voyez-vous d'où vient le problème et comment le résoudre ?