Dobrý večer,
mám program, ktorý číta údaje oblečenia - zoznam zo súboru a chcem aby bolo možné pridať prvok do zoznamu, taktiež niektorý zmazať, vypísať len niektoré a pod., potom znova vypísať už aktualizovaný zoznam takže zmeny by sa mali zapísať aj v súbore.
Problém ale je, že ak stlačím 'p' tak mi to údaje v súbore vymaže a uloží tam len nový ručne pridaný záznam. Ak však stlačím hocičo iné ako 'p' tak to nespraví nič, tým pádom ani nezmaže záznam v súbore. Čo s tým? Tiež by som chcela aby sa prvky pridávali normálne a nie ručne cez kód, ale tiež neviem ako nato, neviem zavolať korektne metódu/y.
Obrovská vďaka všetkým za ochotu!
Prikladám aj zdrojové kódy:
Oblecenie
package projekt;
class Oblecenie {
private String nazov, farba, velkost;
double nakupcena;
double predajcena;
int ks;
private String dodavatel;
public Oblecenie(String nazov, String farba, String velkost,
double nakupcena, double predajcena, int ks, String dodavatel) {
this.nazov = nazov;
this.farba = farba;
this.velkost = velkost;
this.nakupcena = nakupcena;
this.predajcena = predajcena;
this.ks = ks;
this.dodavatel = dodavatel;
}
public Oblecenie(double nakupcena, double predajcena, int ks) {
this("Názov: ", "Farba: ", "Veľkosť: ", nakupcena, predajcena, ks,
"Dodávateľ: ");
};
public void setNazov(String nazov) {
this.nazov = nazov;
}
public void setFarba(String farba) {
this.farba = farba;
}
public void setVelkost(String velkost) {
this.velkost = velkost;
}
public void setDodavatel(String dodavatel) {
this.dodavatel = dodavatel;
}
public void setNakupCena(int nakupcena) {
this.nakupcena = nakupcena;
}
public void setPredajCena(int predajcena) {
this.predajcena = predajcena;
}
public void setKs(int ks) {
this.ks = ks;
}
public String getNazov() {
return nazov;
}
public String getFarba() {
return farba;
}
public String getVelkost() {
return velkost;
}
public String getDodavatel() {
return dodavatel;
}
public double getNakupCena() {
return nakupcena;
}
public double getPredajCena() {
return predajcena;
}
public int getKs() {
return ks;
}
}
Obchod
package projekt;
import java.util.*;
import java.io.*;
class Obchod {
private ArrayList<Oblecenie> obchod;
public Obchod() {
obchod = new ArrayList<Oblecenie>();
}
public void vlozOdev(Oblecenie oblecenie) {
obchod.add(oblecenie);
}
public void vlozOblecenie(Oblecenie[] oblecenie) {
for (Oblecenie o : oblecenie)
obchod.add(o);
}
public void zmazOblecenie(int index) {
obchod.remove(index);
}
public void zmazOblecenie(Oblecenie oblecenie) {
obchod.remove(oblecenie);
}
public Oblecenie getOblecenie(int index) {
return obchod.get(index);
}
public void zapisDoSuboru(String nazovSuboru) {
try {
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(
nazovSuboru)));
for (Oblecenie oblecenie : obchod) {
pw.println(oblecenie.getNazov());
pw.println(oblecenie.getFarba());
pw.println(oblecenie.getVelkost());
pw.println(oblecenie.getNakupCena());
pw.println(oblecenie.getPredajCena());
pw.println(oblecenie.getKs());
pw.println(oblecenie.getDodavatel());
pw.println();
pw.flush();
}
pw.close();
} catch (IOException ioe) {
System.err.println(ioe);
}
}
public static void main(String[] arg) {
try {
BufferedReader in = new BufferedReader(new FileReader(
"oblecenie.txt"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
} catch (IOException e) {
System.out.println("Chyba pri spracovaní súboru.");
}
System.out.println("Stlačte p pre pridanie tovaru do zoznamu.");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
char c = sc.nextLine().charAt(0);
if (c == 'p') {
Obchod o = new Obchod();
Oblecenie obl[] = {
new Oblecenie("bla", "blabla", "blablabla", 8.99, 11.05, 5, "blablablabla")
};
o.vlozOblecenie(obl);
o.zapisDoSuboru("oblecenie.txt");
}
}
}