Classe pour écrire dans des fichiers facilement

Soyez le premier à donner votre avis sur cette source.

Vue 4 405 fois - Téléchargée 545 fois

Description

Cette classe permet avec une seule ligne de code d'écrire n'importe quoi dans un fichier.

Pour l'utiliser :

1- L'ajouter à votre programme ;)

2- L'appeler comme ceci :

Write.print("test.txt", text, true);

ou
Write.println("test.txt", text, true);

Le premier paramètre est le nom du fichier dans lequel vous voulez écrire.

(Si le fichier n'existe pas il sera créé.)

Le second paramètre est le texte que vous souhaitez écrire.

Ce texte peut être sous la forme d'un String, Int, Double, Char, Long, Byte, Short, Float.

Le troisième paramètre sert à vider ou non le fichier avant l'écriture.

Si vous souhaitez vider le fichier de destination avant d'écrire mettez true et sinon mettez false.

N'hésitez pas à me dire ce que vous en pensez !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

NHenry
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136 -
Merci de poster le code source.
KX
Messages postés
16072
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 novembre 2019
88 -
"N'hésitez pas à me dire ce que vous en pensez !"
Programmer en Java, c'est à dire orienté objet, ce n'est pas faire des copier coller !

Tu as 16 méthodes qui font sensiblement la même chose, et ton code c'est grosso modo 16 copier coller du même code ! Il aurait fallu factoriser tout ça...
Imagine que tu veuilles changer un morceau de code, par exemple changer le e.printStackTrace() pour les mettre dans un Logger, et bien tu devrais changer ça 32 fois dans ton code, alors qu'une ou deux fois pourrait suffire !

Le truc très simple, comme tu as
ecrire(String path, String text, boolean replace)
, alors pour les suivants tu aurais juste à faire :

public static void ecrire(String path, int text, boolean replace)
{
    ecrire(path, String.valueOf(text), replace);
}

C'est quand même nettement mieux que de se retaper le même code deux fois !

Dans la catégorie code inutile ton if/else pour gérer le boolean replace est là encore très inutile.

Au lieu d'avoir :

    if (!replace)
        ... new FileWriter(path, true)
    else
      ... new FileWriter(path, false)

Tu devrais directement faire :
    ... new FileWriter(path, !replace)

Ça évite d'avoir encore un copier coller entre le if et le else juste pour un booléen qui change de valeur... et je ne parle même pas des 2 if/else dans les codes à tableaux !

D'ailleurs avec les tableaux tu fais :
          int i = 0;
          do {
            ecri.println(text[i]);
            i++;
          }while (i != text.length);

Très clairement cette boucle devrait être remplacée par un for :

          for (int i = 0; i != text.length; i++)
            ecri.println(text[i]);

Au passage :
- Tu n'as pas besoin de faire un flush() avant un close()
- Il ne faut pas masquer les exceptions de ton try/catch par un System.out.println. Il serait plus propre que tes méthodes throws les IOException, charge à l'utilisateur de les récupérer pour régler le problème.
- Dans les types primitifs tu as oublié les boolean, et pour être complet il faudrait aussi avoir une méthode pour les Object
- Les noms de méthodes devraient être en anglais, exit donc les "ecrire"

Bref, ton code est très naïf dans sa conception et dans l'absolu il ne sert pas à grand chose. Je mets 2 étoiles parce que ça devrait fonctionner (même si je n'ai pas testé), mais il y a quasiment tout à revoir !

Sinon, comme le disait NHenry, postes ton fichier Writer.java !
Moi je lis directement le code dans le .class mais tout le monde ne sait pas faire...
lesckrank
Messages postés
19
Date d'inscription
dimanche 24 août 2014
Statut
Membre
Dernière intervention
27 août 2014
> KX
Messages postés
16072
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 novembre 2019
-
Merci pour tous ces conseils ! Je vais essayer de revoir mon code avec ce que tu m'as dis et je poste le Writer.java juste après.
lesckrank
Messages postés
19
Date d'inscription
dimanche 24 août 2014
Statut
Membre
Dernière intervention
27 août 2014
> KX
Messages postés
16072
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 novembre 2019
-
J'ai revu le code en prenant en compte ce que tu m'as dis ...
Et j'ai également posté le Writer.java ;)

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.