Lire et écrire un fichier délimité

Soyez le premier à donner votre avis sur cette source.

Vue 4 618 fois - Téléchargée 509 fois

Description

Cette source permet de créer des fichiers délimités en définissant un format.

Une fois le format définit, il suffit de demander l'écriture de la ligne et le format est respecté. Lors de la lecture, on peut récupérer les données situées sur une ligne ou sur une colonne facilement.

Source / Exemple :


package fr.julien.definitionfichier;

import java.io.IOException;

import fr.julien.definitionfichier.exception.FormatException;
import fr.julien.definitionfichier.formatfichier.AbstractFormatFichier;
import fr.julien.gestionfichiers.GestionFichiers;

/**

  • <b>Fichier est la classe qui définit un fichier formaté</b>
  • <p>
  • Cette classe est caractérisée par les informations suivantes :
  • <ul>
  • <li>Le path vers le fichier</li>
  • <li>Le format d'écriture du fichier</li>
  • <li>Les colonnes du fichier</li>
  • </ul>
  • </p>
  • <p>
  • De plus, cette classe permet de lire et d'écrire les données du fichier
  • </p>
  • @author Julien
  • @version 1.0
*
  • /
public class Fichier { /**
  • Le path vers le fichier
  • /
private String path; /**
  • Le format d'écriture du fichier
  • /
private AbstractFormatFichier format; /**
  • Les colonnes du fichier
  • /
private Colonne[] colonnes; /**
  • <b>Constructeur de Fichier</b>
  • @param path
  • Le path vers le fichier
  • @param format
  • Le format du fichier
  • @param colonnes
  • Les colonnes du fichier
  • /
public Fichier(String path, AbstractFormatFichier format, Colonne[] colonnes) { this.path = path; this.format = format; this.colonnes = colonnes; } /**
  • Fonction qui permet d'ajouter une ligne dans le fichier
  • @param ligne
  • La ligne à ajouter
  • @return vrai si tout s'est exécuté normalement
  • @throws FormatException
  • Si le format de la ligne n'est pas le bon
  • @throws IOException
  • Si le fichier n'a pas été trouvé
  • /
public boolean ajouterLigne(String[] ligne) throws FormatException, IOException{ boolean res=false; if(ligne.length!=colonnes.length){ throw new FormatException("Nombre de valeur incorrect : "+ligne.length); } else { for(int i=0; i<colonnes.length; i++){ if(!colonnes[i].getFormat().controler(ligne[i])){ throw new FormatException("Le format de la colonne "+colonnes[i].getNom()+" est incorrect"); } } String aEnregistrer = format.formater(ligne); GestionFichiers.getInstance().append(path, aEnregistrer); } return res; } /**
  • Fonction qui permet de récupérer le contenu du fichier
  • @return les informations contenues dans le fichier
  • @throws FormatException
  • Si le format de la ligne n'est pas le bon
  • @throws IOException
  • Si le fichier n'a pas été trouvé
  • /
public LectureFichier lire() throws IOException, FormatException { return new LectureFichier(this); } /**
  • Méthode d'accès au path
  • @return le path
  • /
public String getPath() { return path; } /**
  • Méthode d'accès au format du fichier
  • @return le format d'écriture du fichier
  • /
public AbstractFormatFichier getFormat() { return format; } /**
  • Méthode d'accès aux colonnes
  • @return les colonnes du fichier
  • /
public Colonne[] getColonnes() { return colonnes; } }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
Salut,

A début je ne comprenais pas vraiment ce que tu voulais dire et puis j'ai regardé ton profil et j'ai reconnu une de tes sources sur laquelle nous avions eu une discution animée...

Ben, c'est pas grave.

a+
Messages postés
29
Date d'inscription
mercredi 15 février 2012
Statut
Membre
Dernière intervention
12 avril 2012

Bonjour Julien,
Vous aviez raison à propos de la récursivité, je m'excuse si j'étais obstiné.
Au revoir
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
Des exemples sont disponibles dans le package fr.julien.definitionfichier.lancement

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.