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 :

Lire fichier txt


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut Lire fichier txt
    Bonjour, j'ai un fichier txt ou dedans je stockes des objets au fur et à mesure de mon application.
    Je souhaiterait lire ce fichier mais cela me met une erreur : invalid type code : AC. Il m'indique cette erreur au niveau de la boucle while:
    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
    		MesObjets objets = new MesObjets();
    		File fichier = new File("monFichier.txt");
    		if(fichier.length() != 0){
    			try {
    				FileInputStream file = new FileInputStream(fichier);
    				ObjectInputStream object = new ObjectInputStream(file);
    				while(object.readObject() != null){
    					Objet objet = (Objet) object.readObject();
    					objets.add(objet);
    				}
    				object.close();
    				file.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			} catch (ClassNotFoundException e) {
    				e.printStackTrace();
    			}
    		}
    Pour l'écriture de mon fichier j'ajoute des objets les uns après les autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		File fichier = new File("monFichier.txt");		
    		try{
    			FileOutputStream file = new FileOutputStream(fichier, true);
    			ObjectOutputStream object = new ObjectOutputStream(file);
    			object.writeObject(objet);
    			object.close();
    			file.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    Merci de votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    On ne stocke pas des objets dans un fichier .txt mais dans un fichier binaire.
    Il est probable que ton système d'exploitation fasse des trucs spéciaux sur les fichiers .txt que tu lui demandes de créer, et qu'ils ne soient donc pas de simples fichiers vides. Ce qui entrerait en conflit avec la sérialisation.

    Pour éviter ça, choisis une extension plus neutre, genre .bin ou un truc comme ça, efface tous tes fichiers d'objets, et recommence.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    J'ai mi en .bin et j'ai toujours la même erreur. Cela peut-il avoir un rapport avec tomcat?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ouais enfin le problème c'est surtout que le fileoutputstream est ouvert en append...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Pourtant je le ferme dans ma méthode

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Dans la servlet ou j'appel c'est deux méthode, je lit aussi du texte qui provient d'une requête http mais je ferme bien le inputStream:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
     
            while(reader.ready()){
            	text = text + reader.readLine();
            }
            reader.close();
            request.getInputStream().close();

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

Discussions similaires

  1. Lire fichier txt et remplir int tab[][]
    Par JaneR dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 28/01/2015, 15h33
  2. Réponses: 2
    Dernier message: 15/03/2011, 20h12
  3. Lire fichier txt et afficher des infos
    Par bk930 dans le forum Entrée/Sortie
    Réponses: 15
    Dernier message: 03/02/2010, 11h08
  4. lire fichier .txt (NOTEPAD) ligne par ligne
    Par skambram dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/06/2009, 18h41
  5. Lire fichier txt + listview
    Par yidboulmane dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/11/2008, 10h57

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