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 :

Lecture de fichiers


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut Lecture de fichiers
    Bonjour,

    J'ai décidé de réaliser un jeux d'anagramme pour ma première appli (histoire de débuter tranquillement avec android).

    Pour ma liste de mots j'aimerais les charger à partir d'un fichier texte.
    J'ai trouvé ca sur le web :

    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
    public String ReadSettings(Context context){ 
            FileInputStream fIn = null; 
            InputStreamReader isr = null; 
     
            char[] inputBuffer = new char[255]; 
            String data = null; 
     
            try{ 
                fIn = context.openFileInput("settings.dat");       
                isr = new InputStreamReader(fIn); 
                isr.read(inputBuffer); 
                data = new String(inputBuffer); 
               //affiche le contenu de mon fichier dans un popup surgissant
                Toast.makeText(context, " "+data,Toast.LENGTH_SHORT).show(); 
            } 
            catch (Exception e) {       
                Toast.makeText(context, "Settings not read",Toast.LENGTH_SHORT).show(); 
            } 
         /*finally { 
                   try { 
                          isr.close(); 
                          fIn.close(); 
                          } catch (IOException e) { 
                            Toast.makeText(context, "Settings not read",Toast.LENGTH_SHORT).show(); 
                          } 
          } */
          return data; 
    }
    Seulement je ne sais pas ce qu'est un context (c'est le chemin vers le fichier ?).

    J'ai fait ça, bien sur ca ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //On charge le fichier text
        Context lecontext = getBaseContext();
        Outils.ChargeFich(lecontext);
    Ou faut-il préciser le chemin vers mon fichier texte ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Tout d'abord le "context" est le contexte de ton application (tu peux utiliser l'instance de ton activity par exemple).

    Si tu veux lire un fichier, voici un code :

    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
     
     public String readSettings(Context context, String pathFile){ 
        	FileInputStream fIn = null; 
        	InputStreamReader isr = null; 
     
        	char[] inputBuffer = new char[255]; 
        	String data = null; 
     
        	try{ 
        		fIn = context.openFileInput(pathFile);       
        		isr = new InputStreamReader(fIn); 
        		isr.read(inputBuffer); 
        		data = new String(inputBuffer); 
        		//affiche le contenu de mon fichier dans un popup surgissant
        		Toast.makeText(context, " "+data,Toast.LENGTH_SHORT).show(); 
        	} 
        	catch (Exception e) {       
        		Toast.makeText(context, "Settings not read",Toast.LENGTH_SHORT).show(); 
    			Log.e("ReadSettings", e.getMessage());
    			Log.e("ReadSettings", e.toString());
        	} 
        	finally { 
        		try { 
        			isr.close(); 
        			fIn.close(); 
        		} catch (IOException e) { 
        			Log.e("ReadSettings", e.getMessage());
        			Log.e("ReadSettings", e.toString());
        		} 
        	} 
        	return data; 
        }
    Ensuite si tu veux appeler ton code tu peux faire comme ça (par exemple dans le onCreate de ton Activity) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    final String cheminFichier = "/sdcard/monfichier.txt";
    String monContenu = readSettings(this, cheminFichier);
    (j'ai pas testé le code, mais ça devrais pas être bien loin )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Merci pour cette réponse ! (désolé du retard, j'avais des exams).

    Finalement, j'esseaye d'utiliser un Scanner pour le faire, c'est beaucoup plus court.

    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
    public static boolean ChargeFich(String nomFichier) throws FileNotFoundException{
           Scanner scan = null;
    	try {
    		scan = new Scanner(new File(nomFichier));
    		while(scan.hasNextLine()) {
    			System.out.println(scan.nextLine());
    		}
    	} catch (FileNotFoundException e) {
    		e.printStackTrace();
                    return false;
    	} finally {
    		if (scan!=null) scan.close();
    	}
     
           return true;
           }
    Seulement j'ai un petit soucis.

    Pour utiliser ma méthode je fais comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //On charge le fichier texte
            try {
                Outils.ChargeFich("mots.txt");
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Annagramme.class.getName()).log(Level.SEVERE, null, ex);
            } :
    Seulement, il ne trouve pas mon fichier. Je l'ais placé dans le répertoire de mon projet (C:\Programmation\Projets\NetbeansProject\Annagrame), logiquement c'est le répertoire par défaut ?

    J'ai aussi essayé de le placer directement dans C:\ donc pour le paramètre de ma méthode j'ai mit "C:\\mots.txt", résultat il ne le trouve pas non plus...

    Après une petite recherche j'ai découvert que si je faisait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File monFichier = new File("mots.txt");
            System.out.println(monFichier.getAbsolutePath());
    Il m'affiche /mots.txt
    Conclusion, il me rajoute un / devant le nom de mon fichier ou de mon chemin, quelqu'un aurait une solution ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    J'ai réussis à trouver ma solution : donc il faut créer une carte sd virtuelle pour l'émulateur... ensuite copier les fichier dessus... et ensuite changer le chemin de ma méthode pour :

    Outils.ChargeFich("sdcard/mots.txt");

    J'ai perdu au moin 3 heures à résoudre ce problème, haha c'est trop bête

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 11h05
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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