[HELP] lecture fichier binaire

[Résolu]
Signaler
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008
-
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008
-
Bonjour,
Je dois lire un fichier binaire.
et le fichier biaire commence par une ligne.
il me faut les donnees qu'il y a apres. Commen,t je fais pour sauter cette ligne ? ( elle se termine par le caractere binaire 0A)
Sacahnt que mon prog doit lire le fichier binaire qui est en little indian en faisant :
- Sauter le premiere ligne
- lire les 35 octets ( c un nom)
- sauter les 166 octets inutiles
- lire les 2 octets ( c un numero (Id))
- lire les 35 octets ( c un nom)
- sauter les 166 octets inutiles
- lire les 2 octets ( c un numero (Id))
.
.
.
jusqua le fin

Pour le moment g fait ca mais il me manque a sauter la premiere ligne

Code :
DataInputStream dis = new DataInputStream
( new FileInputStream(cheminZoneEssai+"m.ch1"));

b = new byte[256];
byte_nom = new byte[36];
byte_id = new byte[10];
int nbreDeLigne = 1;


//System.out.println("\n str:"+bytes+" :"+str);
int bytes = 0 ;
if (bytes != -1) {
while (true) {
bytes = dis.read (b, 0, 39); // nomvoie
System.out.println("nomvoie : "+ bytes );
if (bytes == -1) {break;}
bytes = dis.read (b, 0, 166); // inutile
if (bytes == -1) { break; }
bytes = readCharLittleEndian(dis); // Id
System.out.println("ID : "+ bytes );
if (bytes == -1) {break;}
}
}

3 réponses

Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008

ca ya est c bon merci
voila ce kil fallait faire :

buffer = new char[1024];

//System.out.println("\n LectureFichier : "+cheminFichier);
try {
DataInputStream dis = new DataInputStream(new FileInputStream(cheminZoneEssai +
"m.ch1"));

b = new byte[100000];
b_temp = new byte[100000];

int bytes = 0;
String str = dis.readLine ();

while (bytes != -1) {
try {
//nom chanel
bytes = dis.read (b, 0, 35);
str = new String(b, 0, 0, bytes);
str = str.replaceAll ("\\x00", "");

num_fichier = str.substring (str.indexOf ("-") + 1,
str.length () - 3);
System.out.println ("Identifiant : " + num_fichier);
//inutile
bytes = dis.read (b, 0, 477);
bytes = dis.read (b, 0, 35);
str = new String(b, 0, 0, bytes);
nomvoie = str.replaceAll ("\\x00", "");
System.out.println ("Nom voie : " + nomvoie);
bytes = dis.read (b, 0, 477);
verifSivoieExiste (nomvoie);

if (nboccurencesvoie == 0) {
ajoutVoie (nomvoie, num_fichier);
}
} catch (Exception e) {
System.err.println ("fin de m.ch1");
}
}
} catch (MalformedURLException e) {
// e.printStackTrace ();
} catch (IOException e) {
// e.printStackTrace ();
}
Messages postés
50
Date d'inscription
mercredi 18 mai 2005
Statut
Membre
Dernière intervention
24 avril 2008

Aidez moi svp!!!
Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012

Pkoi tu pourrais pas faire un readLine()

Sinon tu connais le caractere de fin de ligne donc pkoi tu ne lis pas jusqu'à lui?
(ok tu perds 2 ms mais bon...)