java获取文件编码,jsoup获取html纯文本操作

 更新时间:2020年08月19日 10:53:27   作者:256g的胃  
这篇文章主要介绍了java获取文件编码,jsoup获取html纯文本操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

maven引入获取编码的jar

 <dependency>
  <groupId>com.ibm.icu</groupId>
  <artifactId>icu4j</artifactId>
  <version>67.1</version>
 </dependency>

获取文件编码

package com.lovnx.note.util;
import com.ibm.icu.text.CharsetDetector;
import com.ibm.icu.text.CharsetMatch;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
 
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
 
/**
 * @author @256g的胃
 * @ClassName HtmlParse
 * @Description
 * @Date 15:32 2020/7/9
 **/
public class HtmlParse {
 
 public static String getEncode(String filePath) throws IOException {
 
 Path path = Paths.get(filePath);
 byte[] data = Files.readAllBytes(path);
 
 CharsetDetector detector = new CharsetDetector();
 detector.setText(data);
 CharsetMatch match = detector.detect();
 String encoding = match.getName();
 System.out.println("The Content in " + match.getName());
 return encoding;
 }
 public static void main(String[] args) throws Exception {
 System.out.println(HtmlParse.getEncode("/Users/cxt/Downloads/test.html"));
 }
}
 

上面获取文件编码是为了在服务器根据文件流下载文件时防止文件乱码直接指定编码格式,然后再根据下载下来的文件识别纯文本

Document doc = Jsoup.parse("读取的文本字符串,此处应该是带html标签的");

String text = doc.text();

jsoup也支持 直接指定文件的形式去获取纯文本

参考 https://jsoup.org/

补充知识:java 解析html/读取html内容

jsoup

String 转化

1、Document doc = Jsoup.parse(html);

例如:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
 Document doc = Jsoup.parse(html);
 System.out.println(doc.text()); ;

常用api

2、获取节点文本:Document.text();

以上这篇java获取文件编码,jsoup获取html纯文本操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java源码解析之LinkedHashMap

    Java源码解析之LinkedHashMap

    LinkedHashMap是HashMap的子类,所以也具备HashMap的诸多特性.不同的是,LinkedHashMap还维护了一个双向链表,以保证通过Iterator遍历时顺序与插入顺序一致.除此之外,它还支持Access Order, ,需要的朋友可以参考下
    2021-05-05
  • Java中的Kafka拦截器详解

    Java中的Kafka拦截器详解

    这篇文章主要介绍了Java中的Kafka拦截器详解,Producer 拦截器(interceptor)是在 Kafka 0.10 版本被引入的,主要用于实现 clients 端的定制化控制逻辑,需要的朋友可以参考下
    2023-11-11
  • idea中写sql语句没有提示字段的问题

    idea中写sql语句没有提示字段的问题

    在IDEA中编写SQL时如果没有字段提示,通常是因为没有设置注入语言,解决方法是通过快捷键Alt+Enter选择“注入语言或引用”,然后选择相应的数据库(如MySQL),之后重新输入SQL语句即可,此方法可以有效解决IDEA中SQL语句提示问题,提高开发效率
    2024-09-09
  • SpringSecurity在单机环境下使用方法详解

    SpringSecurity在单机环境下使用方法详解

    本文详细介绍了SpringSecurity和SpringBoot的整合过程,包括配置用户认证、JSP页面的使用、数据库认证以及授权功能的实现,感兴趣的朋友一起看看吧
    2025-02-02
  • Spring boot validation校验方法实例

    Spring boot validation校验方法实例

    这篇文章主要给大家介绍了关于Spring boot validation校验方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 公司一般使用的分布式RPC框架及其原理面试

    公司一般使用的分布式RPC框架及其原理面试

    这篇文章主要为大家介绍了公司一般使用的分布式RPC框架及其原理的面试问题解答,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • 如何实现自己的spring boot starter

    如何实现自己的spring boot starter

    这篇文章主要介绍了如何实现自己的spring boot starter,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Intellij IDEA如何设置代理

    Intellij IDEA如何设置代理

    这篇文章主要介绍了Intellij IDEA如何设置代理问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 深入了解Java数据结构和算法之堆

    深入了解Java数据结构和算法之堆

    这篇文章主要为大家介绍了Java数据结构和算法之堆 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Java中的@SneakyThrows注解详解

    Java中的@SneakyThrows注解详解

    这篇文章主要介绍了Java中的@SneakyThrows注解详解,@SneakyThrows将当前方法抛出的异常,包装成RuntimeException,骗过编译器,使得调用点可以不用显示处理异常信息,需要的朋友可以参考下
    2023-10-10

最新评论