Bonjour

Un petit pb
J'ai une string que je veux zipper, le pb est que en première ligne de la string zippée je me retrouve avec une dizaine de caractères incohérant:

-> ¬í | J·8------------------Sauvegarde de la Base de données

Nota: le défaut est apparement créé lors de l'enregistrement du fichier /tmp/sauvagarde.sql

Code java : 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
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
113
114
115
116
117
118
 
package librairie;
 
 
import java.io.*;
import java.util.*;
import java.util.zip.*;
import java.util.Enumeration;
import java.text.*;
import sun.text.Normalizer;
 
	/**
         * Classe de création d'une archive Zip
         * à partir des fichiers du répertoire courant.
         *
         * D'après un exemple de la documentation officielle Java Sun
         * http://java.sun.com/developer/technicalArticles/Programming/compression/
         *
         * Author: Hugo ETIEVANT
         */
	public class Zip {
 
		/**
                 * Taille générique du tampon en lecture et écriture
                 */
		static final int BUFFER = 2048;
 
		//public static String unAccent(String s) {
		//	String temp = Normalizer.normalize(s, Normalizer.DECOMP, 0);
		//	return temp.replaceAll("[^\\p{ASCII}]","");
		//}
 
		/**
                 * Programme principal.
                 */
		public static String main ( String texte) {
 
			String fichierZip = "/tmp/archive.zip";
			String file_a_archiver = "/tmp/sauvagarde.sql";
 
	   		/*************
                         * Compression
                         *************/
			try {
				//création du fichier
				ObjectOutputStream fileout = new ObjectOutputStream (new FileOutputStream(file_a_archiver));
				fileout.writeObject(texte);
				fileout.close();
 
 
	      		// création d'un flux d'écriture sur fichier
				FileOutputStream dest = new FileOutputStream(fichierZip);
 
				// calcul du checksum : Adler32 (plus rapide) ou CRC32
				CheckedOutputStream checksum = new CheckedOutputStream(dest, new Adler32());
 
	      		// création d'un buffer d'écriture
				BufferedOutputStream buff = new BufferedOutputStream(checksum);
 
	      		// création d'un flux d'écriture Zip
				ZipOutputStream out = new ZipOutputStream(buff);
 
	         	// spécification de la méthode de compression
				out.setMethod(ZipOutputStream.DEFLATED);
 
				// spécifier la qualité de la compression 0..9
				out.setLevel(Deflater.BEST_COMPRESSION);
 
	         	// buffer temporaire des données à écrire dans le flux de sortie
				byte data[] = new byte[BUFFER];
 
	           	// création d'un flux de lecture
		        FileInputStream fi = new FileInputStream("/tmp/sauvagarde.sql");
 
		        // création d'un tampon de lecture sur ce flux
		        BufferedInputStream buffi = new BufferedInputStream(fi, BUFFER);
 
		        // création d'une entrée Zip pour ce fichier
		        //ZipEntry entry = new ZipEntry(unAccent("archive.sql"));
		        ZipEntry entry = new ZipEntry("archive.sql");
 
		        // ajout de cette entrée dans le flux d'écriture de l'archive Zip
		        out.putNextEntry(entry);
 
		        // écriture du fichier par paquet de BUFFER octets
		        // dans le flux d'écriture
		        int count;
		        while((count = buffi.read(data, 0, BUFFER)) != -1)
		        	{out.write(data, 0, count);}
 
				// Close the current entry
	         	out.closeEntry();
 
	         	// fermeture du flux de lecture
				buffi.close();
 
				// fermeture du flux d'écriture
				out.close();
				buff.close();
				checksum.close();
				dest.close();
 
				//System.out.println("checksum: " + checksum.getChecksum().getValue());
 
			// traitement de toute exception         
			} catch(Exception e) {e.printStackTrace();}
 
			try{
		   		File file = new File(file_a_archiver);
		   		if(file.exists()){file.delete();}
		   		file = null;
		   	}catch (Exception e) {}
 
 
	      return(fichierZip);
	   }
 
}

Ou est le bug

Merci