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

Entrée/Sortie Java Discussion :

[FILE][HTML]Création d'un fichier html en cache


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 39
    Points
    39
    Par défaut [FILE][HTML]Création d'un fichier html en cache
    Bonjour,

    Je souhaite créer un fichier HTML pour en récupérer le contenu, seulement, pour les performance du serveur je souhaite que ce fichier ne soit pas sauvegardé.
    Or lorsque je créer mon fichier :

    OutputStream os = new java.io.FileOutputStream("c:/toto"+ it + ".html");

    Celui ci est directement sauvegardé. Est il possible de créer un fichier html seulement en cache? Afin de réaliser les traitements de celui ci sans être obligé de le supprimer à la fin. Et accessoirement améliorer les performance car ces fichier html sont crées et traité dans une boucle.


    Merci,
    Thomas.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 153
    Points
    153
    Par défaut
    Je ne comprends pas, tu dois bien avoir un flux en lecture (InputStream) ?
    Si tu ne veux pas le sauvegarder, travailles avec et ferme le une fois tes traitements finis. Mais n'utilises pas d'OutputStream !

  3. #3
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Quelle est ta définition de cache ?

    Du cache peut être sur du file system.

    Si par contre tu veux créer des flux mémoire, il y a les classes : ByteArrayOutputStream, ByteArrayInputStream qui implémentent respectivement de OutputStream et InputStream.


    Si tu veux pouvoir traiter du fichier sur du file system sans se préoccuper de leur destruction, il y a la méthode : File#createTempFile qui permet de créer des fichiers temporaires.
    Je ne répondrai à aucune question technique en privé

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 39
    Points
    39
    Par défaut
    En faite, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    OutputStream os = new java.io.FileOutputStream(File.createTempFile("toto",".html"));
     
    File fitleTmp = new File("c:/fichier.html");
     
    javax.xml.transform.stream.StreamResult result = new javax.xml.transform.stream.StreamResult(fitleTmp);
    						org.docx4j.convert.out.html.HtmlExporter.html(pkj, result,"");
    Quelque soit le paramètre du streamResult, outputStream ou File, mon fichier est crée sur mon disque dur or je ne veux pas que le système ajoute un nouveau fichier.

    Je veux simplement lire le contenu du HTML retourné par le HTMLExporter.

    Merci bien !

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Si on regarde la spécification de StreamResult, il y a le constructeur : public StreamResult(OutputStream outputStream)

    Donc, tu peux faire un : OutputStream oStream = new ByteArrayOutputStream(10000);

    Le paramètre passé à ByteArrayOutputStream est la taille initiale du buffer en mémoire, si par avance tu connais une évaluation de la taille, ça peut aider (j'ai mis 10000 arbitrairement).

    Mais il faut savoir que le système d'exploitation peut déjà gérer des fichiers directement en mémoire lorsqu'ils sont beaucoup utilisés (il y a déjà un cache à ce niveau), mais c'est transparent.
    Je ne répondrai à aucune question technique en privé

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 39
    Points
    39
    Par défaut
    Parfait !!

    C'est exactement ce que je cherchais!!
    Et ça fonctionne parfaitement.

    Reste à paramétrer correctement la taille aloué.

    est-ce une taille maximum ou directement la taille aloué?

    Merci à tous les deux pour vos réponses

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Thomas_ats Voir le message
    Parfait !!

    C'est exactement ce que je cherchais!!
    Et ça fonctionne parfaitement.

    Reste à paramétrer correctement la taille aloué.

    est-ce une taille maximum ou directement la taille aloué?

    Merci à tous les deux pour vos réponses
    Si tu regardes la javadoc, il est écrit :

    ByteArrayOutputStream

    public ByteArrayOutputStream()

    Creates a new byte array output stream. The buffer capacity is initially 32 bytes, though its size increases if necessary.
    Et :

    ByteArrayOutputStream

    public ByteArrayOutputStream(int size)

    Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.

    Parameters:
    size - the initial size.
    C'est donc la taille initiale.
    Je ne répondrai à aucune question technique en privé

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Points : 39
    Points
    39
    Par défaut
    Ok j'étais sur la java doc. Et l'échange sur ce genre de soucis me plaît, voila pourquoi j'ai ajouté une réponse

    Merci beaucoup pour ton aide et merci pour ta réponse sur l'autre forum.

    Je clos le poste.

    encore merci !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/09/2013, 07h47
  2. Réponses: 1
    Dernier message: 04/12/2010, 17h08
  3. Comment inclure un fichier html dans un autre fichier html ?
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 11/10/2009, 08h36
  4. [HTML] Insérer fichier HTML dans un autre fichier HTML
    Par Ange44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 29/11/2007, 16h53
  5. création automatique de fichier html
    Par oclone dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 03/02/2006, 14h53

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