2017-02-09 136 views
-1

这可能很容易,但我不知道该怎么做。Jsoup和保存到文本文件

 Elements rows = table.select("tr"); 
     String s[] = new String[rows.size()]; 
     String p[] = new String[rows.size()]; 

     for (int i = 1; i < rows.size(); i++) { 
      Element row = rows.get(i); 
      Elements cols = row.select("td"); 
      s[i] = cols.get(0).text(); 
      p[i] = cols.get(1).text(); 

      String c = s[i] + ":" + p[i]; 



      list1.add(c); 

      out.print(c); // not work; blank text document. 

所以我需要写字符串c到txt文件。我得到的一切都是空白的txt文件。我尝试过使用cols.text(),但它将所有的表体写入txt文件。

+0

使用张贴代码,我无法重现你的问题,但有些事告诉我,你可能不会在你的代码被关闭'out'。 – Pshemo

+0

根据你的回答,你的问题是另一个像[BufferedWriter不会将所有内容写入其输出文件](http://stackoverflow.com/q/13426142/1393766)这样的问题的重复。所有Writers或OutputStreams都可以与缓冲区一起使用。获取写入资源的权限可能需要很长时间,所以我们不想经常要求它。因此,我们正在存储大量数据,然后请求写入权限。当缓冲区满时写入会自动发生。在其他情况下,我们需要明确调用flush/close。 – Pshemo

回答

0

好吧,我找到解决办法:

  Elements rows = table.select("tr"); 
      String s[] = new String[rows.size()]; 
      String p[] = new String[rows.size()]; 
      boolean connectionStatus=false; 
      for (int i = 1; i < rows.size(); i++) { 
       Element row = rows.get(i); 
       Elements cols = row.select("td"); 
       s[i] = cols.get(0).text(); 
       p[i] = cols.get(1).text(); 

       String c = s[i] + ":" + p[i]; 



       list1.add(c); 
       out.print(c); 
       out.print(System.getProperty("line.separator")); 



       out.flush(); // add flush in loop 

      } 
      out.close(); // close