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

Android Discussion :

Ecriture de données dans un fichier


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut Ecriture de données dans un fichier
    Bonjour,

    J'essaye d'enregistrer des données pour pouvoir les lires et charger et construire une map.
    Quand j'écrit mes données directement depuis ma classe "GameSystem" qui est mon objet centrale contenu dans une surfaceview, lors de la création de l'objet, ca marche, mais si j'essaye d'enregistrer mes données sur cette même classe avant de quitter pour les charger dirrectement ensuite, ca ne marche plus, ou simplement si j'essaye d'écrire mes données ( de la même façon ) depuis la classe "MainActivity", ca ne marche plus :

    ex :

    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
     
     
     
        @TargetApi(Build.VERSION_CODES.KITKAT)
        void buildMap( int val ){
            FileOutputStream fOut = null;
            OutputStreamWriter osw = null;
           InputStream strem ;
     
            deleteFile("map" + val );
     
            try{
                fOut = openFileOutput("map" + val, Context.MODE_APPEND);
     
                osw = new OutputStreamWriter(fOut);
                int xx = 150, yy = 48;
     
                int sX = getCurrentFocus().getWidth();
                int sY = getCurrentFocus().getHeight();
     
                int valX = sX/6 ;
                int valY = (sX/6)/4;
                int c1 = 0, c2 = 0, vS = valX/4 ;
                String wordd = "sea" ;
                int sizeY = 0;
                for ( int cont = 0 ; cont < 1500 ; cont ++ )
                {
                    osw.write( wordd + ' ' + ( valX*c1 + vS + valX/4 ) + ' ' +  valY*c2  + ' ');
                    c1 ++ ;
                    if (c1 > 20 ){ c1 = 0 ; c2++ ; vS = -vS ; sizeY ++ ;}
                    if ( cont == 200 ){ wordd = "desert";}
                }
     
            }
            catch (Exception e){
     
            }
            finally {
                try {
                    osw.close();
                    fOut.close();
                } catch (IOException e) {
                }
            }
        }
    Avez vous une idée de pourquoi ces données semblent s'éffacer si je crée une nouvelle activité pour lancer le jeu ?
    Merci si vous pouvez m'aider.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Par défaut
    Bonjour,

    Je ne vois pas l'utilité d'ouvrir le fichier en MODE_AJOUT, si toute fois

    tu le supprime avant l'ouverture ( deleteFile("map" + val ); ).

    Mis à part çà, je ne vois pas ce qui cloche dans ton code. Il faudrait que tu poste la partie où

    tu accède en lecture au fichier, la partie de chargement je veux dire.

    ___salut !

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut
    Merci pour ta réponse.

    Voici la partie où je charge 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
    17
    18
    19
    20
    21
    22
     
        @TargetApi(Build.VERSION_CODES.KITKAT)
        void read()
        {
            String wordBuild = "empty" ;
            int val1, val2 ;
     
            try( Scanner scanner = new Scanner( new InputStreamReader( context.openFileInput(map) ) )){
                while ( scanner.hasNext()) {
                    if ( scanner.hasNextInt()) {
                        int valu1 = scanner.nextInt();
                        int valu2 = scanner.nextInt();
                        resourceHandler.build( wordBuild, valu1, valu2 ) ;
                    }
                    else {
                        wordBuild = scanner.next();
                    }
                }
        } catch (IOException e) {
     
            }
        }
    En fait cela fonctionne si j'écris ma map dans la même sous activité que celle qui la lit.

    Mais si je l'écrit avant de quitter par exemple ( sauvegarde ) pour la relire en relançant la sous activité, cela ne fonctionne pas.
    Si je l'écrit dans mon activité principale cela ne fonctionne pas non plus.
    Voici comment je l'écrit dans mon activité principale :

    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
     
     
     
        void buildMap( int val ){
            FileOutputStream fOut = null;
            OutputStreamWriter osw = null;
           InputStream strem ;
     
            try{
                fOut = openFileOutput("map" + val, Context.MODE_ENABLE_WRITE_AHEAD_LOGGING);
     
                osw = new OutputStreamWriter(fOut);
                int xx = 150, yy = 48;
     
                int sX = getCurrentFocus().getWidth();
                int sY = getCurrentFocus().getHeight();
     
                int valX = sX/6 ;
                int valY = (sX/6)/4;
                int c1 = 0, c2 = 0, vS = valX/4 ;
                String wordd = "sea" ;
                int sizeY = 0;
                for ( int cont = 0 ; cont < 1500 ; cont ++ )
                {
                    osw.write( wordd + ' ' + ( valX*c1 + vS + valX/4 ) + ' ' +  valY*c2  + ' ');
                    c1 ++ ;
                    if (c1 > 20 ){ c1 = 0 ; c2++ ; vS = -vS ; sizeY ++ ;}
                    if ( cont == 200 ){ wordd = "sol";}
                }
     
            }
            catch (Exception e){
     
            }
            finally {
                try {
                    osw.close();
                    fOut.close();
                } catch (IOException e) {
                }
            }
        }
    Merci si vous pouvez m'aider.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut
    il y a aussi une légère différence :

    Il y a une différence a avec l'émulateur et l'utilisation de l'application sur smartphone ( je peux quitter ma sous activité et la relancer depuis l'activité principale ), mais dans les 2 cas, l'écriture et la lecture des fichiers depuis mon activité principale ne fonctionne pas quand je lis depuis ma sous activité..

Discussions similaires

  1. [VBA-E]Ecriture de données dans un fichier texte
    Par osito57 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 18/08/2017, 19h42
  2. Réponses: 0
    Dernier message: 26/05/2009, 10h10
  3. [A-00] Ecriture de données dans un fichier texte
    Par DamKre dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2008, 15h29
  4. [CSV] Ecriture des données dans un fichier
    Par kagura dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2006, 22h55
  5. Ecriture à une position donné dans un fichier
    Par xarius dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/05/2006, 16h05

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