为了账号安全,请及时绑定邮箱和手机立即绑定

Jsoup java重写它应该添加的文件字符串

Jsoup java重写它应该添加的文件字符串

繁星淼淼 2022-11-10 15:13:32
应该读取 html 文件并将结果写入另一个文件的代码缓冲的写入器写入文件但是当使用不同的 urlit 运行代码时不会附加而是重写文件并且以前的内容消失需要的解决方案是,当 jsoup 迭代新的 html 时,结果应该添加到输出文件而不是重写更改了缓冲写入器以外的不同写入器类型public class WriteFile {    public static void main(String args[]) throws IOException  {     String url = "http://www.someurl.com/registers";    Document doc = Jsoup.connect(url).get();    Elements es = doc.getElementsByClass("a_code");         for (Element clas : es)     {                          System.out.println(clas.text());       BufferedWriter writer = new BufferedWriter(new FileWriter("D://Author.html"));      writer.append(clas.text());      writer.close();    }   }    }
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

不要将 - 方法误认为appendBufferedWriter附加内容到文件中。它实际上附加到给定的作者。

要实际将其他内容附加到文件中,您需要在打开文件编写器时指定。FileWriter有一个额外的构造函数参数允许指定:

new FileWriter("D://Author.html", /* append = */ true)

您甚至可能对Java Files API感兴趣,因此您可以不用实例化您自己的APIBufferedWriter等:

Files.write(Paths.get("D://Author.html"), clas.text().getBytes(), StandardOpenOption.CREATE, StandardOpenOption.APPEND);

您的循环和您正在编写的内容可能会进一步简化为以下内容(APPEND如果有意义,您甚至可以再次省略 -open 选项):

Files.write(Paths.get("D://Author.html"), 
            String.join("" /* or new line? */, 
                        doc.getElementsByClass("a_code")
                           .eachText()
                       ).getBytes(), 
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);


查看完整回答
反对 回复 2022-11-10
  • 1 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号