fichier -> byte[] -> Blob et l'inverse
Bonjour,
J'aimerai créer à partir d'un fichier , un tableau de byte afin de l'enregistrer sous forme de BLOB dans ma base de données.
De plus j'aimerai avoir une fonction inverse pour recréer le fichier à partir d'un tableau de bytes.
Comment dois-je procéder ??
J'ai ces 2 méthodes mais elles ne fonctionne que sur les fichier <64Ko
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
| public void TableauDeBytesVersFichier (byte[] tableau, String fic) throws java.io.IOException {
try {
java.io.FileWriter f = new java.io.FileWriter(fic);
for (int i = 0; i < tableau.length; i++) {
f.write((int)tableau[i]);
}
f.close();
}
catch(IOException e){
System.out.println(e+"erreur lors de la lecture du fichier");
}
}
/**
* Permet de copier le contenu d'un fichier dans un tableau byte[]
**/
public byte[] FichierVersTableauDeBytes (String fic) throws java.io.IOException {
java.io.File fichier = new File(fic);
int i=0;
int ch;
byte[] tableau;
try {
FileInputStream f= new FileInputStream(fichier);
try{
tableau = new byte[(int)fichier.length()];
while((ch=f.read())!=-1){
tableau[i]=(byte)ch;
i++;
}
}
finally{
f.close();
}
return tableau;
}
catch(FileNotFoundException ef){
System.out.println("fichier introuvable");
return null;
}
catch(IOException e){
System.out.println(e+"erreur lors de la lecture du fichier");
return null;
}
} |