IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Ecriture dans un fichier


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 26
    Points
    26
    Par défaut Ecriture dans un fichier
    Bonjour,mon problème c'est de créer un fichier et de le remplir aléatoirement jusqu'à atteindre une taille donnée par l'utilisateur.J'arrive a créer le fichier mais j'arrive pas a le remplir.j'ai utilisé random pour générer une chaîne de caractère et de boucler jusqu'à atteindre la taille demandée mais il écris une seule chaîne . Pouvez vous m'aider .voici mon code d'écriture dans le fichier
    Code : 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
       try {
        FileWriter fw= new FileWriter(nomfichier,true);
           do
        {
            for(int j=0;j<100;j++)   
              {
                int i = (int)Math.floor(Math.random() * 63);
                random+=s.charAt(i);
                ecrire(path,random);
     
              } fw.close();
        }while(nomfichier.length()<taille);
     
    } catch(IOException e) {
        System.out.println("Impossible d'écrire dans le fichier");
    }
    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Je constate que tu construis un FileWriter fw, ce qui est bien, mais que tu ne t'en sers jamais, ce qui ne risque pas de marche.

    Par ailleurs, ce n'est pas malin de demander ce qui ne va pas dans la façon d'écrire un fichier, puis de faire appel à une méthode ecrire() sans nous la montrer.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Bonjour,c'est vrais,mais j'ai essayer plusieurs façon d'écriture,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(int j=0;j<100;j++)   
              {
                int i = (int)Math.floor(Math.random() * 62);
                random+=s.charAt(i);
                fw.write(random);
                fw.close();
              }
    qui génère une chaîne de 99 caractère et je boucle jusqu'à atteindre la taille du fichier volu,et j'ai essayer avec la fonction ecrire
    Code : 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
    public static void ecrire(String path, String text) 
    	{
    		PrintWriter ecri ;
    		try
    		{
    			ecri = new PrintWriter(new FileWriter(path),true);
    			ecri.print(text);
    			ecri.flush();
    			ecri.close();
    		}//try
    		catch (NullPointerException a)
    		{
    			System.out.println("Erreur : pointeur null");
    		}
    		catch (IOException a)
    		{
    			System.out.println("Problème d'IO");
    		}
     
    }
    Mais toujours il me génère une seule chaîne de caractère

  4. #4
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Salut,

    normal que qu'il n'y ai qu'une seule ligne : tu ne fait visiblement qu'un seul appel de ta fonction génératrice.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    j'ai essayer aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        do
        {
            for(int j=0;j<100;j++)   
              {
                int i = (int)Math.floor(Math.random() * 63);
                random+=s.charAt(i);
                ecrire(path,random);
     
              } 
        }while(nomfichier.length()<taille);

  6. #6
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    J'ai l'impression que tu fermes ton Filewriter après avoir écris la première ligne, je pense que c'est d'ici que viens ton problème.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Voila mon code complet,mais toujours le mm problème
    Code : 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
    import java.io.BufferedReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class fichier {
     
        public static void main(String[] args) {
     
            System.out.println("Entrer le nom du fichier");
            String nomfichier;
            nomfichier =  lireString();
            System.out.println("Entrer la taille du fichier en Mo");
    int taille = lireInt();
     java.io.File fichier = new java.io.File(nomfichier);       
    try 
    { 
    fichier.createNewFile(); 
    } 
    catch (IOException e) 
    { 
    System.out.println("Impossible de créer le fichier"); 
    } 
    String random = null, s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";
    try {
        FileWriter fw= new FileWriter(nomfichier,true);
        do
        {
            for(int j=0;j<100;j++)   
              {
                int i = (int)Math.floor(Math.random() * 63);
                random+=s.charAt(i);
                fw.write(random);
              }
        }while(fichier.length()<=(taille*1024*1024));
        fw.close();
    } catch(IOException e) {
        System.out.println("Impossible d'écrire dans le fichier");
    }
     }    
     public static String lireString(){
    String ligne_lue=null; 
    try{ 
    InputStreamReader lecteur=new InputStreamReader(System.in); 
    BufferedReader entree=new BufferedReader(lecteur); 
    ligne_lue=entree.readLine(); 
    } 
    catch(IOException err){ 
    System.exit(0); 
    } 
    return ligne_lue; 
    } 
        public static int lireInt(){
    int x=0; 
    try{ 
    String ligne_lue=lireString(); 
    x=Integer.parseInt(ligne_lue); 
    } 
    catch(NumberFormatException err){ 
    System.out.println("***Erreur de données Entier attendu***"); 
    System.exit(0); 
    } 
    return x; 
    } 
     
    }

  8. #8
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Chez moi ton code marche plutôt bien. Il m'écrit une seule ligne de 2Mo mais c'est juste un soucis de saut de ligne x)

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par toutgrego Voir le message
    Chez moi ton code marche plutôt bien. Il m'écrit une seule ligne de 2Mo mais c'est juste un soucis de saut de ligne x)
    Ouaip.

    Il y a aussi la String aléatoire est jamais remise à zéro. Elle répète les octets aléatoirement choisis, à chaque boucle.
    Ah, et elle commence toujours par null, aussi.

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Merci beaucoup pour tous

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo