2014-08-31 35 views
1

我得到了這個java代碼,由於某種原因,編譯器在writer.println(linestr);處提示錯誤;錯誤:(51,13)的java:不到的語句Java:Writer.println()的不可訪問語句?

String linestr =""; 
int row = 1, col = 1; 
PrintWriter writer = new PrintWriter("C:\\Users\\User\\Selenium\\scrapjv\\output\\out.txt", "UTF-8"); 
while(isElementPresent(By.xpath("//div[@id='quotes_content_left_pnlAJAX']/table/tbody/tr[" + row + "]"))) { 
    for (col = 1; ; col++) { 
     linestr = linestr + driver.findElement(By.xpath("//div[@id='quotes_content_left_pnlAJAX']/table/tbody/tr[" + row + "]/td[" + col + "]")).getText() + ","; 
    } 
    writer.println(linestr); 
    row++; 
} 
writer.close(); 

我只想一個html標籤轉換到.csv與,分隔爲列和\n的行。你明白我的代碼有什麼不好嗎?順便說一句,也許你知道一些方便的庫快速轉換成一個CSV表格到CSV文件?

+0

註釋掉。錯誤發生了變化 - 它是什麼?現在概括一下錯誤(和標題)。 – user2864740 2014-08-31 02:56:45

回答

4

會發生什麼事是你for環路無限,因爲你不指定終止條件也不在break聲明循環體:

for (col = 1; ; col++) 
      ^

因此,該程序將永遠不會在之後到達代碼循環。

+0

哦,哇,甚至沒有注意到我複製了從另一個有中斷的聲明... ...謝謝 – Wicelo 2014-08-31 02:46:54

3
for (col = 1; ; col++) { 

上述for循環沒有結束條件,所以它永遠不會結束,因此,聲明如下for循環將永遠不會被達到。

這裏是一個for循環,結束的一個例子:

for (col = 1; col < 10; col++) {