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();
}
}
}
> 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.
> 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/
Når man snakker om kodestruktur...
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html