Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : écrire bit par bit ... comment faire ??? [ Archives / Maths & Algorithmes ] (D4rkA)

vendredi 10 mars 2006 à 13:10:23 | écrire bit par bit ... comment faire ???

D4rkA

Voilà, je vous explique ... j'ai une chaine de caractère composée de 1 et de 0.
Et je voudrais écrire un fichier Bits par Bits ou alors isncrire directement la chaine de Bits de mon String.

c'est à dire : plutot que d'écrire les caractères 1 et 0 dans un fichier, qui prennent plus de place a cause de leur code ASCII, je voudrais seulement écrire LE bit 1 ou 0 ... et je bloque, je sais pas comment faire, j'ai essayé avec différente méthode mais le fichier est toujours aussi volumineux (il inscrit dont des caractéres ou autre chose mais pas des bits comme je voudrais)

Est-ce que quelqu'un aurait une solution miracle ??? (je débute un peu en JAVA en fait )

vendredi 10 mars 2006 à 13:55:51 | Re : écrire bit par bit ... comment faire ???

tucobouch

Le mieux est de convertir ta chaine en octets : tu prends des groupes 8 bits que tu convertit en un nombre (compris entre 0 et 256) et que tu écrit dans ton fichier.
Sinon, il n'existe pas de solution d'écrire un bit a la fois. La taille minimale etant l'octet

En gros :

//chaine a convertir doit etre multiple de 8
String bin="1010001010001111"; 

//ton buffer de sortie dans ton fichier
try{
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(new File("mon_fichier")));

//boucle qui convertit et écrit dans le fichier :
int conv=0;   //la representation numérique de ton groupe de 8 bits

for(int i=0;i<bin.length();i+=8)
{
    conv=0;
    //convertit 8 bits :
    for(int j=0;j<8;j++)
    {
        conv=conv<<1;   //décale d'un bit vers la gauche ton nombre convertit (revient a multiplier par 2!)

         //conversion du bit
         conv=conv+(bin.charAt(i+j)-'0');
     }

     //ecriture dans le fichier :
     out.write(conv);
}

//fermeture du fichier
out.close();
     
}catch(Exception e){}

J'ai vérifié ça marche (tu peux verifier en ouvrant le fichier dans un éditeur héxadécimal!)





vendredi 10 mars 2006 à 18:05:20 | Re : écrire bit par bit ... comment faire ???

D4rkA

En fait, je refais l'algo de Huffman ... Donc le nombre de bits que j'ai à écrire n'est pas forcément un multiple de 8. Du coup je pense que les derniers bits restant je dois les écrire dans un octet en complétant avec des 0 ...

Ouais enfait ça pourrais bien marcher, mais il faut que je refasse une partie du prog pour faire des chaines de 8 caractéres ...

Bon je vais essayer de faire ça dans le WE.

En tout cas je te remercie pour ton aide !!!



Cette discussion est classé dans : fichier, écrire, chaine, bits, bit


Répondre à ce message

Sujets en rapport avec ce message

écrire dans un fichier texte à une certaine position(ligne) [ par encoreaid ] salut, merci à tout participant à se site. chercher une chaine de caractère ds un fichier [ par fatiez ] bonjour,svp est-ce ke je peux avoir le nom d'une fonction en jsp qui permet de chercher une chaine de caractère ds un fichiermerci écrire dans un fichier [ par hatem_benjemaa ] Bonjour, j'utilise le bean suivant pour écrire dans un fichier. package bfc; import java.io.*; public class writeFile { public void writeS Ecrire dans un fichier sans effacer le contenu [ par indo__ ] Bonjour, je n'arrive pas a à trouver comment écrire dans un fichier sans effacer le contenu de ce dernier, existe t-il une methode permettant d'écrire modifier un fichier texte en remplacant une chaine par une autre [ par ajfanfan ] Bonjour, je souhaite ouvrir un fichier texte, rechercher les occurences d'une chaine et les remplacer par une autre, puis sauvegarder le fichier texte Remplacement de texte [ par monstor_rox ] BonjourJe vous explique mon problème.Je souhaite remplacer une chaine de caractère par une autre dans un fichier texte mais je ne connais que l'emplac ptite kestion de debutant [ par niko29940242 ] bijour tout le monde, alor voila mon pti probleme (qui n'en sera surement pas un pour vous)j'ai :- String = "ma chaine"; - et un fichier texte rechercher dans un fichier pdf [ par tiess81 ] je boss actuellement sur un API de gestion des archives numériques, alors il m'ait indispensable  de pouvoir rechercher une chaine de caractère dans u java // Bits [ par didoux95 ] Bonjour a tous.je voudrais savoir si java (plus precisement la class File) permet de savoir combien de bit d'un fichier on a lu (ou il nous reste a li Fichier Java [ par CicinhoRaul ] Salut à tous et à toutes, j'ai un gros problème :  j'ai un formulaire à faire en java avec des boutons radios, et je dois écrire tout ce ke j'entre da


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.