2014-02-19 33 views
1

你好這個問題一直困擾我,因爲我一個星期到處搜索都是徒勞的。我有此代碼 ................while循環之外的語句被忽略?

while ((str = buff.readLine()) != null) { 
    String[] line = str.split(";"); 
    String part1 = line[0]; 
    String part2 = line[1]; 
    String part3 = line[2]; 
    String part4 = line[3]; 
    String part5 = line[4]; 

    if (c.equals(part3)) { 
     st = st + part1 + ";" + part2 + ";" + part3 + ";" + part4 + ";" + part5; 
     System.out.println(part1 + ";" + part2 + ";" + part3 + ";" + part4 + ";" + part5 + "\n"); 

     fich1_tampon.write(st); 
     fich1_tampon.flush(); 
     fich1_tampon.newLine(); 

     ++i; 
    } 
} 

System.out.println("F;" + i); 
fich1_tampon.close(); 
buff.close(); 
} 

了 「的System.out.println(」 F 「; + I);」被忽略,我不知道爲什麼。代碼很長,但基本上我正在尋找具有特定字符串並放在c中的行,並且正在將這些行寫入另一個文件中。 在我的控制檯上的結果是這樣的:

E; 2014/02/19 20:21:06 文件已存在。 N; 2000; PU;促進iphone; 232425

N; 2001; PU;促進戴爾; 232426

N; 2002; PU;促進三星; 23242

在線程異常 「主要的」 java LireFichierDecouper.decouper(LireFichierDecouper.java:70) at Main2.main(Main2.java:7) LireFichierDecouper中的第70行是「String part3 = line [2];」

PS:我對java和eclipse非常陌生,如果你想讓我發佈所有的代碼,使它更清晰,我會的。

+8

如果您可以先更明智地格式化該代碼,它將*真的*幫助。如果您使用的是IDE,請執行此操作。這會讓它變得更容易,更容易看到發生了什麼。如果你能把這個減少到一個簡短但完整的程序來證明這個問題,那也會有幫助。我強烈懷疑,當你這樣做時,你會發現這個問題。 –

+0

嘗試調試。唯一能防止'System.out.println(「F;」+ i)''被執行的東西是早期行中的一個例外(或者如果你從樣本中省略了某些東西) – Taylor

+1

最好的程序員使用不一致編程時縮進。 | = ^] –

回答

0
  • 如果您在日食工作,檢查錯誤 「問題」 視圖。有時候,當你的工作區出現錯誤時,eclipse不能編譯代碼。

  • 如果您在運行服務器的上工作,可能是服務器無法識別您的更改。重新啓動它,可能會有所幫助。

  • 如果以上兩項無法幫助您,請詳細解釋您想要的內容並指定您的開發環境。

+0

我沒有任何問題顯示,但在我的控制檯我有這個: – higheagle

+0

E; 2014/02/19 20: 21:06 文件已存在。 N; 2000; PU;促進iphone; 232425 N; 2001; PU;促進戴爾; 232426 N; 2002; PU;促進三星; 23242 在線程異常 「主要」 java.lang.ArrayIndexOutOfBoundsException:2 (Main2.java:7) \t at LireFichierDecouper.decouper(LireFichierDecouper.java:70) \t at Main2.main(Main2.java:7) – higheagle

0

調試器將是有益的,看看你是通過在加的System.out.println一個破發點到達該代碼。另外,你在哪裏運行代碼? System.out.println將根據java的運行方式進行定向。如果從命令行執行,請提供命令行。