Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony FE 16-25mm F2.8 G: meno zoom, più luce
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Il nuovo Sony FE 16-25mm F2.8G si aggiunge all'analogo 24-50mm per offrire una coppia di zoom compatti ma di apertura F2.8 costante, ideali per corpi macchina altrettanto compatti (vedi A7c ) e fotografia di viaggio.
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola è decisa sulla sua strada: questo nuovo edge 50 Pro non guarda a specifiche stellari ma considera di più l’aspetto estetico. E si propone elegantemente con linee sinuose e un sistema operativo veloce. Peccato per un prezzo un po' fuori mercato.
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace
Ecovacs allarga la sua famiglia di robot tagliaerba, ed abbiamo testato per diverse settimane il nuovo Goat G1-800. Installazione velocissima, app precisa, e lavoro infallibile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-05-2007, 09:30   #1
spv42
Member
 
Iscritto dal: Sep 2005
Messaggi: 274
[Java] System.out

Ciao, volevo sapere se era possibile "clonare" il System.out.

Cioè vorrei che quando viene invocata : System.out.println("Stringa");

Mi scriva sia sullo standard output (console) che su un mio File.

Grazie.
spv42 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 09:56   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da spv42 Guarda i messaggi
Ciao, volevo sapere se era possibile "clonare" il System.out.

Cioè vorrei che quando viene invocata : System.out.println("Stringa");

Mi scriva sia sullo standard output (console) che su un mio File.
Sì, è possibile.

Ecco un esempio:
Codice:
import java.io.*;

public class Prova
{
    public static void main (String[] args)
    {
        try
        {
            FileOutputStream fos = new FileOutputStream ("unfile.txt");

            DupOutputStream dupos = new DupOutputStream (System.out, fos);

            PrintStream ps = new PrintStream (dupos);

            System.setOut (ps);

            System.out.println ("Questa stringa va sullo standard-output e sul file!");

            ps.close ();
        }
        catch (Exception e)
        {
            e.printStackTrace ();
        }
    }
}


class DupOutputStream extends OutputStream
{
    private OutputStream one;
    private OutputStream two;

    public DupOutputStream (OutputStream one, OutputStream two)
    {
        this.one = one;
        this.two = two;
    }
    
    public void close () throws IOException
    {
        one.close ();
        two.close ();
    }

    public void flush () throws IOException
    {
        one.flush ();
        two.flush ();
    }
    
    public void write (int b) throws IOException
    {
        one.write (b);
        two.write (b);
    }

    public void write (byte[] b) throws IOException
    {
        one.write (b);
        two.write (b);
    }

    public void write (byte[] b, int off, int len) throws IOException
    {
        one.write (b, off, len);
        two.write (b, off, len);
    }
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 10:17   #3
spv42
Member
 
Iscritto dal: Sep 2005
Messaggi: 274
Grazie,

Ancora.
spv42 è offline   Rispondi citando il messaggio o parte di esso
Old 03-05-2007, 11:26   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quello di cui non sono sicuro è la ps.close(), se è giusto farla o meno (o fare diversamente).
Facendola, vengono chiusi i due stream (del file e del System.out originale).
Chiudere lo stream relativo al file è corretto e sacrosanto. Non so se chiudere il System.out originale va bene.

Magari alla fine si potrebbe rimettere tutto a posto, cioè salvare all'inizio il System.out originale e alla fine ripristinarlo e quindi chiudere solo lo stream del file.

Sono un testone .... ho il libro "Java I/O" a casa, non l'ho ancora letto tutto tutto ma è meglio se lo rileggo bene!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace Ecovacs Goat G1-800, mettiamo alla prova il robo...
ASUS ProArt 1, un PC completo ad altissime prestazioni per creator e non solo ASUS ProArt 1, un PC completo ad altissime prest...
OPPO Reno11 F 5G: vuole durare più di tutti! La recensione OPPO Reno11 F 5G: vuole durare più di tut...
Boston Dynamics presenta l'evoluzione de...
Scaricati gli ultimi dati dal drone NASA...
Take-Two: dopo l'acquisizione di Gearbox...
NASA Dragonfly: la missione con il drone...
TV Sony: ora al top di gamma ci sono i M...
NVIDIA dice definitivamente addio a Turi...
Ghost of Tsushima: ecco i requisiti PC d...
La prima edizione di Coderful porta il m...
Netflix, è polemica per il presun...
Call of Duty Vanguard: un flop per Activ...
Le ricariche con corrente modulata potre...
Ci sarebbe la Cina dietro gli "atta...
Microsoft Copilot for Security è ...
Il Tribunale si schiera dalla parte di A...
Fastned, la prima stazione di ricarica p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www2v