Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    [JAVA] scrittur di un outputstrem

    buongiorno a tutti,
    (dubbio e problema)
    ho un output stream che contiene il risultato di una compilazione(o meglio quello che viene visualizzato in console se lanciassimo javac dal cmd).
    come posso prendere questo risultato e trasformarlo in stringa?

    ringrazio
    nh

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] scrittur di un outputstrem

    Originariamente inviato da newhook
    ho un output stream che contiene il risultato di una compilazione(o meglio quello che viene visualizzato in console se lanciassimo javac dal cmd).
    come posso prendere questo risultato e trasformarlo in stringa?
    Innanzitutto solo dire "output stream" in generale non vuol dire nulla di particolare/chiaro. Quale output stream "concreto"??

    Visto che parli di "console", posso immaginare che hai scritto delle cose su System.out. Che tra l'altro non è un OutputStream ma un PrintStream!!
    Il 'out' si può benissimo "redirezionare" (setOut() di System) ma bisogna creare un apposito PrintStream che tipicamente incapsula un XYZOutputStream, cioè un output stream specifico che scrive "altrove" es. su file (FileOutputStream), su byte array (ByteArrayOutputStream) ecc....

    Quindi?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    mmm...sto facendo in questo modo
    codice:
    FileOutputStream fos = new FileOutputStream("c:/xyz.txt");
    PrintStream ps = new PrintStream(fos);
    poi passo il ps ad un metodo (che si aspetta un OutputStream) e mi stampa il suo contenuto correttamente nel file.
    Il mio problema è che questo contenuto lo vorrei mettere in una stringa...non riesco a capire come potrei fare..

    nh

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    codice:
    FileOutputStream fos = new FileOutputStream("c:/xyz.txt");
    PrintStream ps = new PrintStream(fos);
    poi passo il ps ad un metodo (che si aspetta un OutputStream) e mi stampa il suo contenuto correttamente nel file.
    Faccio una premessa (anche per chiarire quanto detto prima): una cosa è un (XYZ)OutputStream e una cosa è un PrintStream anche se è bene precisare che PrintStream come ereditarietà deriva alla fin fine da OutputStream. Sono però due livelli diversi.

    Se il tuo metodo come parametro ha proprio OutputStream e basta, vuol dire che può prendere qualunque output stream. E immagino che se il metodo vuole scrivere "a caratteri" allora andrà a "wrappare" l'OutputStream in qualcos'altro (es. PrintWriter oppure OutputStreamWriter -> BufferedWriter o altra combinazione).

    Pertanto passare al metodo un PrintStream che è effettivamente un OutputStream sarebbe poco utile e ininfluente per il metodo (che tanto lo userebbe "solo" come OutputStream) ... tanto vale basterebbe passare direttamente es. un FileOutputStream.


    Originariamente inviato da newhook
    Il mio problema è che questo contenuto lo vorrei mettere in una stringa...non riesco a capire come potrei fare..
    Se il metodo riceve un OutputStream tu potresti passargli un ByteArrayOutputStream. Tutto l'output andrebbe nel suo buffer interno di byte[].

    Dovresti poi ottenere un String dal byte[] e questo è facile perché ByteArrayOutputStream ha 2 metodi:

    String toString()
    String toString(String charsetName)

    Ma c'è la solita questione del charset, che compare nelle conversioni String <-> byte[]. Il metodo che scrive sul OutputStream quale charset usa per scrivere i caratteri???
    Potrebbe essere uno specifico/fisso o "quello della piattaforma". Ma devi saperlo tu a priori, cosa fa il metodo riguardo questo!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.