Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

tolkning av java kode

8 views
Skip to first unread message

eddie

unread,
Nov 15, 2007, 1:49:08 PM11/15/07
to
har et programm som skal skrive ut å legge til nye navn på fil, men får det
ikke til. Hva er feil?

Forutsetninger: navnfil.txt må opprettes.

her er koden:

import java.io.*;
import static javax.swing.JOptionPane.*;
class HandterNavneregister {
public static void main(String[] args) throws IOException {
String filnavn = "navnfil.txt";
/*
* Leser inn alle navnene og skriver dem ut på skjermen
*/
FileReader leseforbTilFil = new FileReader(filnavn);
BufferedReader leser = new BufferedReader(leseforbTilFil);
String etNavn = leser.readLine();
String innlesteNavn = "Følgende navn er registrert:";
while(etNavn != null) // null betyr filslutt
innlesteNavn += ("\n" + etNavn);
etNavn = leser.readLine();

leser.close();
}
showMessageDialog(null, innlesteNavn);

int svar = showConfirmDialog(null, "Skal flere navn registreres?",
"Navneregister", YES_NO_OPTION);
if (svar == YES_OPTION) {
FileWriter skriveforbTilFil = new FileWriter(filnavn, true);
PrintWriter skriver = new PrintWriter(new BufferedWriter(skriveforbTilFil));
while (svar == YES_OPTION) {
String nyttNavn = showInputDialog("Oppgi et navn: ");
skriver.println(nyttNavn);
svar = showConfirmDialog(null, "Skal flere navn registreres?",
"Navneregister", YES_NO_OPTION);
}
skriver.close();
}
}
}

bokfink

unread,
Nov 15, 2007, 3:57:04 PM11/15/07
to
On Thu, 15 Nov 2007 19:49:08 +0100, eddie wrote:

> har et programm som skal skrive ut å legge til nye navn på fil, men får det
> ikke til. Hva er feil?

Nei, si det du. Hva skjer når du kompilerer og kjører dette? Det blir
litt enklere å svare om du kan si det.

Men det ser ut til at du ikke går til slutten av den filen du har for å
skrive ut nye navn.

Rune Henning Johansen

unread,
Nov 16, 2007, 2:14:58 AM11/16/07
to
bokfink satt og skrev:

> On Thu, 15 Nov 2007 19:49:08 +0100, eddie wrote:
>
>> har et programm som skal skrive ut å legge til nye navn på fil, men får det
>> ikke til. Hva er feil?

Brudd på regelen om aldri to m-er i slutten av et ord? ;-)

Tips: Thunderbird har norsk ordsjekk!

> Nei, si det du. Hva skjer når du kompilerer og kjører dette? Det blir
> litt enklere å svare om du kan si det.

Og hvorfor ikke formatere koden før man poster den?

Kanskje også ta med fila som skal leses inn?

- - -

Ellers ser det ut som en aldri så liten evig løkke her?

while ( etNavn != null ) // null betyr filslutt


innlesteNavn += ( "\n" + etNavn );

Av de ting man ser hvis man sørger for formatering med innrykk? Selv så jeg
dette først da jeg formaterte koden.

- - -

Og et lite tips på tampen: så lenge man er litt usikker, bør man alltid bruke
klammeparanteser! Dette selv om man bare har én setning som skal utføres:

if ( a > b )
{
b = c;
}

Ja, det blir fire linjer i stedet for én. Kanskje også en og annen blank linje
før og etter. Da _ser_ man hva som skjer!?

--

Rune H. Johansen, 22253241, 95939001, http://rhj.info/

Are Nybakk

unread,
Nov 26, 2007, 5:39:14 AM11/26/07
to
Rune Henning Johansen wrote:
> bokfink satt og skrev:
>
>> On Thu, 15 Nov 2007 19:49:08 +0100, eddie wrote:
*Klipp*

> Og et lite tips på tampen: så lenge man er litt usikker, bør man alltid
> bruke klammeparanteser! Dette selv om man bare har én setning som skal
> utføres:
>
> if ( a > b )
> {
> b = c;
> }
>
> Ja, det blir fire linjer i stedet for én. Kanskje også en og annen blank
> linje før og etter. Da _ser_ man hva som skjer!?
>

Når man snakker om kodestruktur...
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Benjamin Hennum Knudsen

unread,
Feb 28, 2023, 8:04:22 AM2/28/23
to
tror denne skal funke.

import java.io.*;
import static javax.swing.JOptionPane.*;

class HandterNavneregister {
public static void main(String[] args) {
String filnavn = "navnfil.txt";

/*
* Leser inn alle navnene og skriver dem ut på skjermen
*/
try (FileReader leseforbTilFil = new FileReader(filnavn);
BufferedReader leser = new BufferedReader(leseforbTilFil)) {
String etNavn = leser.readLine();
String innlesteNavn = "Følgende navn er registrert:";
while (etNavn != null) { // null betyr filslutt
innlesteNavn += ("\n" + etNavn);
etNavn = leser.readLine();
}
showMessageDialog(null, innlesteNavn);
} catch (IOException e) {
e.printStackTrace();
}

int svar = showConfirmDialog(null, "Skal flere navn registreres?", "Navneregister", YES_NO_OPTION);
if (svar == YES_OPTION) {
try (FileWriter skriveforbTilFil = new FileWriter(filnavn, true);
PrintWriter skriver = new PrintWriter(new BufferedWriter(skriveforbTilFil))) {
while (svar == YES_OPTION) {
String nyttNavn = showInputDialog("Oppgi et navn: ");
skriver.println(nyttNavn);
svar = showConfirmDialog(null, "Skal flere navn registreres?", "Navneregister", YES_NO_OPTION);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
0 new messages