verschil tussen System.out.println() en System.err.println()

Wat is het verschil tussen System.out.println()en System.err.println()in Java?


Antwoord 1, autoriteit 100%

In Java zal System.out.println()afdrukken naar de standaard van het systeem dat u gebruikt. Aan de andere kant zal System.err.println()afdrukken met de standaardfout.

Als u een eenvoudige Java-consoletoepassing gebruikt, zullen beide uitvoer hetzelfde zijn (de opdrachtregel of console), maar u kunt de streams opnieuw configureren zodat bijvoorbeeld System.outnog steeds wordt afgedrukt naar de console maar System.errschrijft naar een bestand.

Bovendien tonen IDE’s zoals Eclipse standaard System.errin rode tekst en System.outin zwarte tekst.


Antwoord 2, autoriteit 47%

System.out is “standaarduitvoer” (stdout) en System.err is “foutuitvoer” (stderr). Samen met System.in (stdin) zijn dit de drie standaard I/O-streams in het Unix-model. De meeste moderne programmeeromgevingen (C, Perl, etc.) ondersteunen dit model.

De standaard uitvoerstroom wordt gebruikt om uitvoer van “normale bewerkingen” van het programma af te drukken, terwijl de foutstroom voor “foutmeldingen” is. Deze moeten gescheiden zijn, hoewel ze in de meeste gevallen op dezelfde console verschijnen.

Stel dat je een eenvoudig programma hebt waarin je een telefoonnummer invoert en de persoon met dat nummer afdrukt. Als u een ongeldig nummer invoert, zou het programma u over die fout moeten informeren, maar het zou dat niet moeten doen als antwoord: Als u “999-ABC-4567” invoert en het programma een fout afdrukt bericht “Geen geldig nummer”, dat betekent niet dat er een persoon is met de naam “Geen geldig nummer” wiens nummer 999-ABC-4567 is. Er wordt dus niets afgedrukt naar de standaarduitvoer en het bericht “Geen geldig nummer” wordt afgedrukt naar de foutuitvoer.

U kunt de uitvoeringsomgeving instellen om onderscheid te maken tussen de twee streams, bijvoorbeeld de standaarduitvoer naar het scherm laten afdrukken en de foutuitvoer naar een bestand afdrukken.


Antwoord 3, autoriteit 5%

Deze opdrachten gebruiken verschillende uitvoerstromen. Standaard worden beide berichten op de console afgedrukt, maar het is bijvoorbeeld mogelijk om een of beide berichten om te leiden naar een bestand.

java MyApp 2>errors.txt

Hiermee wordt System.erromgeleid naar het bestand errors.txt.


Antwoord 4, autoriteit 3%

Het hoofddoel van

System.outis het leveren van standaarduitvoer.

System.err‘s belangrijkste doel is het geven van standaardfouten.


Kijk naar deze

http://www.devx.com/tips/Tip/14698

http://wiki.eclipse.org/FAQ_Where_does_System.out_and_System.err_output_go%3F


Antwoord 5

System.out.println("wassup");verwijst naar wanneer u een bepaald resultaat moet uitvoeren met betrekking tot de juiste invoer die door de gebruiker is gegeven, terwijl System.err.println("duh, that's wrong);is een verwijzing om aan te tonen dat de ingevoerde invoer fout is of dat er een andere fout is.

De meeste IDE’s tonen dit in rode kleur (System.err.print).


Antwoord 6

dit antwoord zal je waarschijnlijk helpen, het is zo gemakkelijk
System.erren System.outzijn beide hetzelfde, beide zijn gedefinieerd in de klasse Systemals referentievariabele van PrintStreamklasse als
public final static PrintStream out = null;
en
public final static PrintStream err = null;

betekent beide ref. Variabele van PrintStreamKlasse.
Normaal gesproken System.errwordt gebruikt voor het afdrukken van een foutmeldingen, die de -bewerkbaarheid voor de programmeur vergroten.

Een klein verschil komt in zowel als we werken met omleiding operator.


Antwoord 7

Het is vermeldenswaard dat een OS één wachtrij heeft voor zowel systeem.erg en system.out. Overweeg de volgende code:

public class PrintQueue {
    public static void main(String[] args) {
        for(int i = 0; i < 100; i++) {
            System.out.println("out");
            System.err.println("err");
        }
    }
}

Als u het programma compileert en uitvoert, ziet u dat de volgorde van uitgangen in de console wordt vermengd.

Een OS zal de juiste volgorde blijven als u met System.out of System.err alleen werkt. Maar het kan willekeurig kiezen wat u naast de console wilt afdrukken, als u deze beide gebruikt.

Zelfs in dit codefragment kun je zien dat de bestelling soms wordt gemengd:

public class PrintQueue {
    public static void main(String[] args) {
        System.out.println("out");
        System.err.println("err");
    }
}

Other episodes