Typiske programmer arbeider med data som må registreres og skrives ut av brukeren. I denne veiledningen vil vi utforske hvordan du kan behandle Java innganger fra brukeren og effektivt lage utganger. Det finnes forskjellige måter å samle inn eller gi informasjon på. Her spiller forskjellen mellom utganger på konsollen og feilmeldinger en viktig rolle. Du vil også lære hvordan du kan lese inn data effektivt, enten via konsollen eller grafiske brukergrensesnitt.
Viktigste funn
- Java tilbyr flere måter å håndtere datainntak og -utgang på.
- Det er viktig å skille mellom utganger og feil.
- Scanner er et nyttig verktøy for å lese inn brukerens inndata.
Grunnleggende utgang med System.out
Det første steget når man arbeider med utganger i Java er å håndtere System.out, som representerer standard utgang. Med klassen PrintStream, som representerer System.out, kan du sende utganger til konsollen.
For å lage en tekstutgang, kan du enkelt bruke System.out.print eller System.out.println. println avslutter linjen etter utgangen, mens print ikke gjør det. Hvis du ønsker at den neste utgangen skal skje på samme linje, bruker du print.

Du kan kjøre programmet som følger:
Denne utgangen vil vises på konsollen, og du kan tilpasse programmet for å gi mer informasjon.
Feilmeldinger med System.err
For feilmeldinger er det lurt å bruke System.err. Dette gir fordelen av at feil og vanlige utganger blir klart skilt fra hverandre. Feil kan da visuelt fremheves, for eksempel ved å bruke en annen farge i konsollen (ofte rød).
Når en feil oppstår, kan du bruke System.err.print eller System.err.println for å skrive ut en spesifikk feil:

Her er et eksempel på en feilmelding:
Ved å skille mellom vanlige utganger og feilmeldinger kan du øke lesbarheten og forståelsen av utganger i programmet ditt.
Inndata med System.in og Scanner
For å motta inndata fra brukeren, bruker vi System.in. Det anbefales å bruke Scanner-klassen fra pakken java.util. Scanner forenkler innlesingen av data, da den automatisk gjenkjenner forskjellige datatyper og returnerer inndata som en String.
Først må du importere Scanner:

Deretter kan du opprette en instans av Scanner og gi System.in som parameter:
Nå har du muligheten til å lese inndata i programmet ditt.
Fange brukerens inndata
For å hente data fra en bruker, kan du bruke nextLine(). Dette tillater fanging av en hel linje som en String. Et typisk eksempel ville være å spørre om brukerens alder.
Her er et eksempel på brukerens inndata:

I dette eksempelet blir brukeren bedt om å oppgi sin alder, og programmet returnerer så den oppgitte informasjonen.
Brukerinteraksjoner med grafiske dialoger
Hvis du ønsker å bruke et grafisk brukergrensesnitt (GUI), kan du bruke klassen JOptionPane fra javax.swing-pakken. Dette lar deg samle inndata i et standard dialogvindu, noe som kan være litt mer brukervennlig.

Dette viser en grafisk dialog der brukeren kan oppgi sin alder.
Validering av brukerens inndata
Det er viktig å validere inndataene som kommer fra brukeren. Du bør sørge for at alderen faktisk er i et akseptabelt format, for eksempel som et heltall. Du kan gjøre dette ved å prøve å konvertere strengen til et tall og arbeide med unntak.

Ved å implementere disse valideringene beskytter du programmet ditt mot uventede inndata.
Oppsummering – Optimalisere inndata og utdata i Java
Du har nå lært de grunnleggende konseptene for inndata og utdata i Java. Forskjellen mellom standardutganger og feilmeldinger er grunnleggende for å skape klarhet i programkommunikasjonen. I tillegg tilbyr bruken av Scanner og muligheten for å implementere grafiske dialoger fleksible løsninger for datainntak.
Ofte stilte spørsmål
Hvilken klasse bruker jeg for standardutgang?Du bruker System.out for å vise utganger i konsollvinduet.
Hvordan kan jeg skrive ut feilmeldinger?Bruk System.err for å skrive ut feilmeldinger for å skille dem fra vanlige utganger.
Hvordan fanger jeg brukerens inndata i konsollen?Scanner fra java.util er ideell for å fange brukerens inndata fra System.in.
Kan jeg bruke grafiske inndata-dialoger?Ja, gjennom JOptionPane fra javax.swing kan du bruke grafiske dialoger for inndata.
Må jeg validere brukerens inndata?Ja, validering av inndata er viktig for å unngå feil og uventede inndata.