Molio bih pomoc oko asp.net
Posto sam s javine strane sve napravio cak i sinkronizaciju , trebao bih sad iz asp-a ocitat datoteku koju sam napravio u javi, ali ne znam kako to a da ne zeznem sinkronizaciju,moze li molim vas neko rijesit ili objasnit postupak.Evo koda iz jave, pa mozda pomogne i shvatite princip zadaatka :
import java.lang.;
import java.io.;
public class ispit
{
private static String poruka = “Unesi ime, preizme, broj indeksa i ispit odvojeno zarezom:”;
private BufferedReader br;
private BufferedWriter bw;
private FileOutputStream fop;
private String [] polje;
File lockf = new File(“c:/neki_direktorij/ispit.lock”);
boolean lock;
File f;
boolean mode;
// citaj ulaz
private String ulaz()
{
String i = null;
try
{
i = br.readLine();
}
catch (IOException ioe)
{
System.out.println("Greska pri unosu");
System.exit(1);
}
return i;
}
// ispisi poruku i dohvati s ulaza
private String dohvati()
{
System.out.println(poruka);
return ulaz();
}
// Parsiranje ulaza
private String[] parser(String str)
{
// Podjeli na polje stringova
// Delimiter je znak ,
String [] podaci = str.split(",");
// provjera ima li tocno polja
if(podaci.length != 4)
{
return null;
}
// Ima li praznih polja?
for(int i = 0;i<podaci.length; i++)
if(podaci[i].trim().equals(""))
return null;
^\\d{6}$ regularan izraz (regular expression)
koji definira iskljucivo 6-znamenkaste brojeve
if(!podaci[2].trim().matches("^\\d{6}$"))
return null;
// provjeri da li je ispit iz jave ili asp.net
if(!podaci[3].trim().equals("java") && !podaci[3].trim().equals("ASP.net"))
return null;
return podaci;
}
// upisi podatke u datoteku
private boolean upisi(String file, String [] podaci)
{
boolean ret = false;
boolean mode = true;
String tmp;
try
{
// Sinkronizacija pomocu lock datoteke izmedju jave i asp
while(lock == false && lockf.exists())
{
// Cekaj 1 sekundu pa ponovo provjeri lock
Thread.currentThread().sleep(1000);
}
// Ako ne postoji lock datoteka znaci mozemo pisati
// Stvori lock datoteku
lockf.createNewFile();
lock = true;
lockf.deleteOnExit();
// Ako datoteka s podacima vec postoji tekst se dodaje na kraj
// Ako ne postoji, mora se stvoriti
if(f.exists())
mode = true;
else
mode = false;
// Otvori datoteku u koju cemo upisivati podatke
fop = new FileOutputStream(f, mode);
+ je operator spajanja stringova (concatenation)
tmp = "Ime:" + podaci[0].trim() + "\n";
tmp += "Prezime:"+podaci[1].trim()+"\n";
tmp += "Mbrs:"+podaci[2].trim()+"\n";
tmp += "Ispit:"+podaci[3].trim()+"\n";
// upisi podatke o korisniku/ispitu u buffer
fop.write(tmp.getBytes());
// forsiraj da se podaci prebace iz buffera u datoteku
fop.flush();
// zatvori datoteku
fop.close();
// Pisanje je gotovo, mozemo maknuti lock
lockf.delete();
lock = false;
System.out.println("Podaci uspjesno upisani");
ret = true;
}
catch (IOException ex)
{
ex.printStackTrace();
}
catch(Exception e)
{
System.out.println("lock exception");
}
return ret;
}
// Konstruktor
public ispit (String file)
{
f = new File(file);
// Provjera postoji li datoteka
if(f.exists())
{
// Ako postoji moze li se citati/pisati?
if(f.canRead() && f.canWrite())
System.out.println("Datoteci se moze pristupiti");
}
// Ako ne postoji, moze li se stvoriti?
else
{
try
{
// Moze li se stvoriti?
f.createNewFile();
}
catch (IOException ex)
{
System.out.println("Ne mogu stvoriti datoteku");
System.exit(1);
}
catch (SecurityException ex)
{
System.out.println("Ne mogu stvoriti datoteku");
System.exit(1);
}
}
// Citaj ulaz s tipkovnice
br = new BufferedReader(new InputStreamReader(System.in));
// Beskonacna petlja koja stalo ucitava linije s tipkovnice
// Izlaz iz programa -> CTRL-C
while(true)
{
try
{
// Ako lock datoteka postoji, a java ju ne drzi,
// znaci da asp radi nesto s njome
while(lockf.exists() && lock == false)
{
// 1 sekunda
Thread.currentThread().sleep(1000);
}
}
catch(Exception e)
{
System.out.println("lock exception");
}
String podaci = dohvati();
polje = parser(podaci);
if(polje != null)
{
if(!upisi(file, polje))
System.out.println("problemi kod upisa u datoteku");
}
else
System.out.println("problemi kod parsiranja");
}
}
// Pocetna metoda
// Prije pokretanja je potrebno pretvoriti u bytecode:
// # javac ispit.java
// Pokretanje u komandnoj liniji:
// # java ispit datoteka
public static void main (String[] args)
{
// Program prihvaca jedan argument -> putanja do datoteke u koju ce se upisivati
if(args.length == 1)
new ispit(args[0]);
}
}