Gå til innhold

Filewriter-skrive til fil.


Anbefalte innlegg

Hei.

Skal lage et program som leser inn en teksfil,og som skal kunne skrive til filen . Men det vil ikke skrive til filen.

Noen som kan se hvor feilen ligger?

Takk på forhånd.

 

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Vector;

import java.util.Scanner;

 

public class mainframe {

 

private static void printList(Vector vc) {

for (int i = 0; i < vc.size(); i++){

Object tmp = vc.get(i);

matvare tmp1 = (matvare) tmp;

System.out.println(tmp1.getGruppe() + tmp1.getVarenavn() + tmp1.getProdusent() + tmp1.getInnDato() + tmp1.getUtdato() + tmp1.getLagringsplass()); //skriver ut varenavn

}//for

}

 

private static int printMenu() {

System.out.println("\n -- Meny --");

System.out.println("Registrer ny matvare:\t 0");

System.out.println("Skriv ut liste: 1");

System.out.println("Avslutt og lagre: 2");

System.out.println("Avslutt uten å lagre:\t 3");

int userinput = -2;

System.out.print("\nVelg menypunkt: ");

Scanner scan = new Scanner(System.in);

userinput = scan.nextInt();

return userinput;

}

 

private static void lagre(Vector vc) throws IOException {

File tempFil = new File("datafil.txt");

FileWriter filSkriver = new FileWriter(tempFil);

 

 

 

for (int i = 0; i < vc.size(); i++){

Object tmp = vc.get(i);

matvare tmp1 = (matvare) tmp;

filSkriver.write(tmp1.toString()+ "\n");

}

filSkriver.close();

}

 

public static void main(String[] args) throws Exception{

lesefil kjell = new lesefil();

Vector data = new Vector();

try {

data = fil.read(); //Leser datafil

} catch (Exception e) {

e.printStackTrace();

}

 

//Skriver ut meny:

int valg = 0;

while(valg != 2 && valg != 3){

valg = printMenu();

System.out.println("Du valgte: " + valg);

 

if (valg == 0){

 

String gruppe, vare, produsent, inndato, utdato, lagring, ja, nei;

System.out.println("Varegruppe: ");

Scanner scan = new Scanner(System.in);

gruppe = scan.next();

System.out.println("Varenavn: ");

vare = scan.next();

System.out.println("Produsent: ");

produsent = scan.next();

System.out.println("Inndato: ");

inndato = scan.next();

System.out.println("Utdato: ");

utdato = scan.next();

System.out.println("Lagringsplass: ");

lagring = scan.next();

 

System.out.println("Du skrev: " + gruppe + "\t" + vare + "\t" + produsent + "\t" + inndato + "\t" + utdato + "\t" + lagring);

System.out.println("Vil du registrere denne varen? (Ja/Nei):");

ja = scan.next();

System.out.println("Du valgte: " + ja);

 

}

 

if(valg == 1) {

printList(data);

}

 

}//while-løkke

 

if(valg == 2) {

lagre(data);

System.out.print("Listen er oppdatert");

}

 

}//main

 

}//class

Endret av malurva
Lenke til kommentar
Videoannonse
Annonse

 

private static void lagre(Vector vc) throws IOException {

  File tempFil = new File("datafil.txt");

  FileWriter filSkriver = new FileWriter(tempFil);

 

 

 

  for (int i = 0; i < vc.size(); i++){

  Object tmp = vc.get(i);   

  matvare tmp1 = (matvare) tmp; 

  filSkriver.write(tmp1.toString()+ "\n");

  }

  filSkriver.close();

}

 

5689304[/snapback]

 

For å kunne skrive til fil må du ha to streamer, en FileWriter og en av typen PrintWriter. Så metoden din kunne blitt noe slikt som:

 

private static void lagre(Vector vc) throws IOException {

File tempFil = new File("datafil.txt");

FileWriter filSkriver = new FileWriter(tempFil);

PrintWriter minSkriver = new PrintWriter(filskriver);

 

 

 

for (int i = 0; i < vc.size(); i++){

Object tmp = vc.get(i);

matvare tmp1 = (matvare) tmp;

minSkriver.write(tmp1.toString()+ "\n");

}

minSkriver.close();

}

 

Dette skal funke... Du må importere java.io.PrintWriter (med mindre du lager en short cut og importerer alle pakker, java.io.*)

Lenke til kommentar

Du trenger ikke bruke File først.

 

// For å skrive til fil.
PrintWriter fout = new PrintWriter(new FileWriter("myFile"));

// For å lese fra fil.
BufferedReader fin_intro = new BufferedReader(new FileReader("yourFile"));

 

 

Dessuten, når dere skal legge ut kode, bruk code taggen.

[code*] //uten *
koden din
[/code]

Ørjan...

Endret av Orjanp
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...