Fichiers binaires en java
cilasasuki
Messages postés
16
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, ma question est :
j'utilise le langage java, j'ai des tables HashMap à stocker dans des fichiers binaires et les recuperer plutard, j'ai essayer de le réaliser avec l'exemple suivant:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author FATARE
*/
public class Exemplewtable {
public static void main (String args[]) throws FileNotFoundException, IOException{
File fichier2= new File("fichier1");
FileOutputStream sortie = new FileOutputStream(fichier2);
DataOutputStream eregistrement1 ;
eregistrement1 = new DataOutputStream(new BufferedOutputStream(sortie));
FileInputStream entree = new FileInputStream(fichier2);
DataInputStream auteur1;
auteur1 = new DataInputStream(new BufferedInputStream(entree));
HashMap <String,Integer> table = new HashMap<String,Integer> ();
table.put("jght",44);
table.put("tftght",443);
table.put("htft",4435);
for (Map.Entry<String,Integer> entre: table.entrySet()){
eregistrement1.writeUTF(entre.getKey());
eregistrement1.writeInt(entre.getValue());
}eregistrement1.close();
try
{
System.out.println("auteur1 "+ auteur1.readUTF());
System.out.println( "auteur1 "+ auteur1.readInt());
auteur1.close();
}
catch (IOException t)
{
}
}}
l'exécution de ce pg me donne :
run:
auteur1 jght
auteur1 44
BUILD SUCCESSFUL (total time: 3 seconds).
mon but et de stocker ces table et pouvoir acceder à leurs contenu à partir d'un autre programme,par exemple dans un programme je teste si un string (abc) se trouve dans cette table si oui retourner sa valeur.merci d'avance.je voudrais au moins des indices .
j'utilise le langage java, j'ai des tables HashMap à stocker dans des fichiers binaires et les recuperer plutard, j'ai essayer de le réaliser avec l'exemple suivant:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author FATARE
*/
public class Exemplewtable {
public static void main (String args[]) throws FileNotFoundException, IOException{
File fichier2= new File("fichier1");
FileOutputStream sortie = new FileOutputStream(fichier2);
DataOutputStream eregistrement1 ;
eregistrement1 = new DataOutputStream(new BufferedOutputStream(sortie));
FileInputStream entree = new FileInputStream(fichier2);
DataInputStream auteur1;
auteur1 = new DataInputStream(new BufferedInputStream(entree));
HashMap <String,Integer> table = new HashMap<String,Integer> ();
table.put("jght",44);
table.put("tftght",443);
table.put("htft",4435);
for (Map.Entry<String,Integer> entre: table.entrySet()){
eregistrement1.writeUTF(entre.getKey());
eregistrement1.writeInt(entre.getValue());
}eregistrement1.close();
try
{
System.out.println("auteur1 "+ auteur1.readUTF());
System.out.println( "auteur1 "+ auteur1.readInt());
auteur1.close();
}
catch (IOException t)
{
}
}}
l'exécution de ce pg me donne :
run:
auteur1 jght
auteur1 44
BUILD SUCCESSFUL (total time: 3 seconds).
mon but et de stocker ces table et pouvoir acceder à leurs contenu à partir d'un autre programme,par exemple dans un programme je teste si un string (abc) se trouve dans cette table si oui retourner sa valeur.merci d'avance.je voudrais au moins des indices .
A voir également:
- Fichiers binaires en java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Renommer des fichiers en masse - Guide
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Ce que tu devrais faire c'est directement sérialiser ta HashMap.
Ça te donnera un vrai fichier binaire Java, facilement réutilisable par la suite.
Ça te donnera un vrai fichier binaire Java, facilement réutilisable par la suite.
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException
{
File fichier = new File("fichier");
// Création
HashMap<String,Integer> map1 = new HashMap<String,Integer> ();
map1.put("Tata",123);
map1.put("Titi",456);
map1.put("Toto",789);
// Sérialisation
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fichier));
out.writeObject(map1);
out.close();
// Désérialisation
ObjectInputStream in = new ObjectInputStream(new FileInputStream(fichier));
HashMap<String,Integer> map2 = (HashMap<String, Integer>) in.readObject();
in.close();
// Affichage
for (Entry<String, Integer> e : map2.entrySet())
System.out.printf("%s\t%d\n",e.getKey(),e.getValue());
}