Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Loop'un bitmeme sorunu


Stblack

Öne çıkan mesajlar

public void run() {

String line = null;


try {
Process p = Runtime.getRuntime().exec("/home/ahmet/Desktop/grsim-pro/bin/grsim -simconf /home/ahmet/Desktop/grsim-pro/examples/simconf.so");
BufferedReader br=new BufferedReader(new FileReader("/home/ahmet/Desktop/my_script"));

Writer w = new OutputStreamWriter(p.getOutputStream());
while ((line = br.readLine()) != null) {

w.write(line);
w.write("n");
}
w.close();
Reader r= new InputStreamReader(p.getInputStream());
BufferedReader b=new BufferedReader(r);



**** while ((line = b.readLine()) != null) {

FileWriter output=new FileWriter("asdasd",true);

output.write(line+"n");
output.close();
//System.out.println(Runtime.getRuntime().freeMemory ()+"/"+Runtime.getRuntime().totalMemory());
}


r.close();

Selamlar koddaki hata olan kısım yanında 4 yıldız olan loop sanırım.Terminate olmadan once bir sure bekleyip exception atıyor ve exception da"memory heap" ile ilgili.-Xmx falan yaptım ama duzelmedi,sonunda loopun gereksiz yere cok dondugunu ve sonunda bitmiyo olabilecegine karar verdim.Dosyanın sonu null diil mi dicem fakat boyle bir sey mumkun mu?mumkunse nasıl duzeltmem gerekir.Simdiden tesekkurler
Link to comment
Sosyal ağlarda paylaş

dosyanin sonunun null olmamasi gibi birsey mumkun degil.

ilk onerim o file writeri loopun disina cikarman, ve BufferedWriter ile wraplemen.
illa her iterationda yazilsin istiyorsan flush yaparsin

hatta bi de soyle yap daha kolay olur sorun varsa gormen debug ederken falan:


BufferedWriter writer = new BufferedWriter(new FileWriter("filename"));
String line;
while(true) {
line = input.readLine();
if(line == null) {
System.out.println("buraya yazi koyalim ki anla null a variyo mu hic");
break;
}

//line ile biseyler yapiyorsun galiba es geciyorum onlari
writer.write(line + "n");
writer.flush();
}

//burada kapat sonra
writer.close();
Link to comment
Sosyal ağlarda paylaş

tamam denedim fakat
System.out.println("buraya yazi koyalim ki anla null a variyo mu hic");

output vermedi, nulla kadar gidemiyor sanırım.kafam karıstı:)Dun aynı programı ready() komutu kullanarak calıstırmıstım,o sekilde terminate edebiliyodum fakat bugun olmadı ,genel bi sorun var sanırım

PS:Catch'in icinde
System.out.println("Error in Execution"+e.getMessage());

Seklinde birsey var zaten fakat boyle bir hata almıyorum.Direk heap space hatası veriyor.
Link to comment
Sosyal ağlarda paylaş

abi o son loopun sorun cikarmasinin imkani yok, bence bir yer exception firlatiyor senin catch de bos oldugu icin farkina varmiyorsun o yuzden kodun belli bir satirdan sonrasi hic calismiyor.

edit: editini simdi gordum tamamdir geri aliyorum catch i o zaman :)

ama debug etmekle ugrasmak istemiyorum diyorsan her loopun basina ve sonuna print out koy

System.out.println("A");
loop1
System.out.println("B");
loop2
System.out.println("C");
loop3
System.out.println("D");

seklinde, burada en son hangi harfi bastirirsa anlarsin ki onun altindaki loopta sorun var.
alani daraltinca supheli satirlara ayni seyi uygula, sorun nerde bulursun boylece. sonra soyle ne oldugunu merak ettim ben de :)
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...