/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Omdirigering af standard output
Fra : Bertel Lund Hansen


Dato : 27-10-01 10:49

Hej alle

Er der en der lige ligger med en opskrift på det? Jeg har prøvet
at læse i hjælpefilen, men jeg har ikke overblik over Javas
filhåndtering. Jeg kan godt åbne en tekstfil for læsning og
skrivning, men det kan ikke løse problemet.

Det reelle problem er at JCreator skriver programoutput på en
lille virtuel skærm hvor det hurtigt ruller væk og ikke kan
studeres bagefter. Hvis der findes en anden løsning på det vil
jeg gerne have den også.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

 
 
Ulrik Magnusson (27-10-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 27-10-01 11:12


Bertel Lund Hansen wrote:

> Hej alle
>
> Er der en der lige ligger med en opskrift på det? Jeg har prøvet
> at læse i hjælpefilen, men jeg har ikke overblik over Javas
> filhåndtering. Jeg kan godt åbne en tekstfil for læsning og
> skrivning, men det kan ikke løse problemet.

Du kan bruge System.setOut() og System.setErr():

System.setOut(
new java.io.PrintStream(
new java.io.FileOutputStream(
new java.io.File("out.txt")
)));
System.out.println("davs");

Ulrik Magnusson


Bertel Lund Hansen (27-10-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-10-01 11:28

Ulrik Magnusson skrev:

>Du kan bruge System.setOut() og System.setErr():
> System.setOut( ...

Meget smukt - lige hvad jeg havde brug for. Tak.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Martin Ehmsen (27-10-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 27-10-01 11:22

Bertel Lund Hansen wrote:
> Det reelle problem er at JCreator skriver programoutput på en
> lille virtuel skærm hvor det hurtigt ruller væk og ikke kan
> studeres bagefter. Hvis der findes en anden løsning på det vil
> jeg gerne have den også.

Jeg kender ikke JCreator, er det et Windows program eller kører det
under Linux/Unix-cloner??
I Linux er problemet let at løse:
java Program > output
Så kan man i ro og mag sidde tilbage og læses outputtet i filen output.

En anden mulighed er etv. at lade dit program "sove" lidt med:
try {
Thread.sleep( tidIMillisekunder );
} catch ( InterruptedException ie ) {
}
Indsæt koden mellem de steder hvor der kommer meget output.

En sidste mulighed, som nok er den du søger, er at ændre Standard Ouput.
Det gøres i System klassen i java.lang
Der findes en metod som hedder setOut( PrintStream out )
Etv. kode (som ikke er testet):

import java.io.*;

try {
FileOutoutStream fos = new FileOutputStream( filnavn );
PrintStream ps = new PrintStream( fos );
System.setOut( ps );
} catch( Exception e ) {
}

Mvh.
Martin Ehmsen
--
Xesttub?



Bornholmeren (27-10-2001)
Kommentar
Fra : Bornholmeren


Dato : 27-10-01 14:41

Hej Martin

Det er nu ikke kun i Linux at det fungerer på denne måde, at pipe output
over i en fil, har man altid kunne i DOS, det er en overordnet
funktionalitet, dvs. også i Windows commandoprompt såvel som i Linux.

Mvh
Karsten
"Martin Ehmsen" <thames@get2net.dk> skrev i en meddelelse
news:3bda8a75$0$237$edfadb0f@dspool01.news.tele.dk...
> Bertel Lund Hansen wrote:
> > Det reelle problem er at JCreator skriver programoutput på en
> > lille virtuel skærm hvor det hurtigt ruller væk og ikke kan
> > studeres bagefter. Hvis der findes en anden løsning på det vil
> > jeg gerne have den også.
>
> Jeg kender ikke JCreator, er det et Windows program eller kører det
> under Linux/Unix-cloner??
> I Linux er problemet let at løse:
> java Program > output
> Så kan man i ro og mag sidde tilbage og læses outputtet i filen output.
>
> En anden mulighed er etv. at lade dit program "sove" lidt med:
> try {
> Thread.sleep( tidIMillisekunder );
> } catch ( InterruptedException ie ) {
> }
> Indsæt koden mellem de steder hvor der kommer meget output.
>
> En sidste mulighed, som nok er den du søger, er at ændre Standard Ouput.
> Det gøres i System klassen i java.lang
> Der findes en metod som hedder setOut( PrintStream out )
> Etv. kode (som ikke er testet):
>
> import java.io.*;
>
> try {
> FileOutoutStream fos = new FileOutputStream( filnavn );
> PrintStream ps = new PrintStream( fos );
> System.setOut( ps );
> } catch( Exception e ) {
> }
>
> Mvh.
> Martin Ehmsen
> --
> Xesttub?
>
>



Martin Ehmsen (27-10-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 27-10-01 15:16

Bornholmeren wrote:

> Hej Martin
>
> Det er nu ikke kun i Linux at det fungerer på denne måde, at pipe
output
> over i en fil, har man altid kunne i DOS, det er en overordnet
> funktionalitet, dvs. også i Windows commandoprompt såvel som i Linux.

Okey, det var jeg ikke klar over. Jeg har altid anset DOS/Windows's
kommandoprompt for ret amputeret, så jeg har ikke forsøgt at gøre noget
sådant.
Men tak for hintet, hvis jeg engang skulle få brug for det.

Mvh.
Martin Ehmsen
--
8 year olds, Dude.



Bertel Lund Hansen (27-10-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-10-01 15:55

Martin Ehmsen skrev:

>Okey, det var jeg ikke klar over. Jeg har altid anset DOS/Windows's
>kommandoprompt for ret amputeret, så jeg har ikke forsøgt at gøre noget
>sådant.

Den kan ikke kaldes amputeret. Man skal bare være opmærksom på at
der både er en path- og en classpath-variabel der skal være sat
rigtigt før Java fungerer i en DOS- eller kommandoboks.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Jacob Bunk Nielsen (27-10-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 27-10-01 15:29

"Bornholmeren" <holm@mail.dk> writes:

> > I Linux er problemet let at løse:
> > java Program > output
>
> Det er nu ikke kun i Linux at det fungerer på denne måde, at pipe output
> over i en fil, har man altid kunne i DOS, det er en overordnet
> funktionalitet, dvs. også i Windows commandoprompt såvel som i Linux.

Martin bruger nu en redirect. En pipe er en "|", og den gør noget lidt
andet. Både under DOS og *nix. Jeg har dog stort set aldrig brugt den
under DOS, men bruger den enormt meget under Linux.

Hvis jeg fx på min Linux-maskine af en eller anden mærkelig grund vil
vide hvor mange liniers javakode jeg har i et bibliotek kan jeg fx
gøre:

$ ls *.java|xargs wc -l

Her tager lister man alle .java filer, og piper outputtet over i
xargs, som smækker det bag på 'wc -l'.
OK, jeg kunne også bare have skrevet:

$ wc -l *.java

Men så havde jeg jo ikke brugt nogen pipe

Er du i øvrigt ikke rar at svare under det du citerer og klippe resten
væk? På den måde er det meget lettere at se hvad du svarer på samt at
skrive svar på dine indlæg.

--
Jacob - www.bunk.cc
Are you sure the back door is locked?

Filip Larsen (27-10-2001)
Kommentar
Fra : Filip Larsen


Dato : 27-10-01 16:34

Jacob Bunk Nielsen skrev

> En pipe er en "|", og den gør noget lidt
> andet. Både under DOS og *nix. Jeg har dog stort set aldrig brugt den
> under DOS, men bruger den enormt meget under Linux.

Jeg havde det lidt på samme måde, men efter jeg opdagede cygwin
(http://sources.redhat.com/cygwin/) er jeg begyndt at "pipe" en del under
DOS også :)


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>



Jacob Bunk Nielsen (27-10-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 27-10-01 18:01

"Filip Larsen" <filip.larsen@mail.dk> writes:

> Jeg havde det lidt på samme måde, men efter jeg opdagede cygwin
> (http://sources.redhat.com/cygwin/) er jeg begyndt at "pipe" en del under
> DOS også :)

Jeg har det lidt anderledes. Efter at jeg opdagede Linux
(fx<http://www.redhat.com>), så har jeg ikke brugt DOS/Windows så
meget

Nej, pjat - jeg kender godt cygwin, men har det nu bedre med bare at
køre Linux i stedet for at lege at jeg kører *nix under Windows.

Jeg sætter lige en FUT da vi er off-topic.

--
Jacob - www.bunk.cc
Trespassers will be shot. Survivors will be prosecuted.

Bornholmeren (27-10-2001)
Kommentar
Fra : Bornholmeren


Dato : 27-10-01 18:37


"Jacob Bunk Nielsen" <spam@bunk.cc> skrev i en meddelelse
news:m3lmhx88cm.fsf@paven.bunk.cc...
> "Bornholmeren" <holm@mail.dk> writes:
>
> > > I Linux er problemet let at løse:
> > > java Program > output
> >
> > Det er nu ikke kun i Linux at det fungerer på denne måde, at pipe output
> > over i en fil, har man altid kunne i DOS, det er en overordnet
> > funktionalitet, dvs. også i Windows commandoprompt såvel som i Linux.

Det er selvfølgelig rigtigt
>
> Martin bruger nu en redirect. En pipe er en "|", og den gør noget lidt
> andet. Både under DOS og *nix. Jeg har dog stort set aldrig brugt den
> under DOS, men bruger den enormt meget under Linux.
>
> Hvis jeg fx på min Linux-maskine af en eller anden mærkelig grund vil
> vide hvor mange liniers javakode jeg har i et bibliotek kan jeg fx
> gøre:
>
> $ ls *.java|xargs wc -l
>
> Her tager lister man alle .java filer, og piper outputtet over i
> xargs, som smækker det bag på 'wc -l'.
> OK, jeg kunne også bare have skrevet:
>
> $ wc -l *.java
>
> Men så havde jeg jo ikke brugt nogen pipe
>
> Er du i øvrigt ikke rar at svare under det du citerer og klippe resten
> væk? På den måde er det meget lettere at se hvad du svarer på samt at
> skrive svar på dine indlæg.

Det var måske en god idee
>
> --
> Jacob - www.bunk.cc
> Are you sure the back door is locked?



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste