Ja sam uradio sljedece, kreirao sam klasu Kvadrat:
public class Kvadrat
{
int visina, sirina;
public Kvadrat(int visina, int sirina)
{
this.visina = visina;
this.sirina = sirina;
}
public int getVisina()
{
return visina;
}
public int getSirina()
{
return sirina;
}
}
zatim klasu ObradaKvadrata koja implementira Runnable
public class ObradaKvadrata implements Runnable
{
Kvadrat kvadrat;
public ObradaKvadrata(Kvadrat kvadrat)
{
this.kvadrat=kvadrat;
}
public void obradi()
{
new UpisPodatakaUFajl().upisiPodatke(kvadrat);
}
@Override
public void run()
{
obradi();
}
}
i koja poziva metodu upisiPodatke a koja pripada klasi UpisPodatakaUFajl :
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class UpisPodatakaUFajl
{
public synchronized void upisiPodatke(Kvadrat kvadrat)
{
boolean pf;
File fajl =new File("c:\\podaci.txt");
pf = fajl.exists();
if (pf == false)
{
try {
fajl.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(fajl, true));
out.write("Visina: " + Integer.toString(kvadrat.getVisina()) + " , Sirina: " + Integer.toString(kvadrat.getSirina()) + "\n");
out.close();
}
catch (IOException e)
{
System.out.println("Greska pri kreiranju/upisu u fajl \"podaci\"");
}
}
else if (pf == true)
{
try {
BufferedWriter out = new BufferedWriter(new FileWriter(fajl, true));
out.write("Visina: " + Integer.toString(kvadrat.getVisina()) + " , Sirina: " + Integer.toString(kvadrat.getSirina()) + "\n");
out.close();
}
catch (IOException e)
{
System.out.println("Greska pri upisu u fajl \"podaci\"");
}
}
}
}
koja ima zadatak da upise podatke u fajl c:\podaci.txt , i da ga kreira prvo ako ne postoji...
Sve se ovo pokrece sa kodom:
Public class Main
{
public static void main(String[] args)
{
int i;
for(i=1;i<=10;i++)
{
Kvadrat k = new Kvadrat(i,i);
new Thread(new ObradaKvadrata(k)).start();
}
}
}
Problem je sto mi nikako ne moze normalno upisati svih 10 kvadrata. Stalno izbacuje exception ili ako ne izbaci gresku, onda upise samo nekoliko kvadrata i/ili "0" umjesto nekog od njih. Ima li ko ideju zasto je to tako?