/*** txt转html* @param s* @return*/public static String txtToHtml(String s) {try {StringBuilder builder = new StringBuilder();File file=new File(s);if(file.isFile() && file.exists()){ //判断文件是否存在String encoding=getFilecharset(new File(s));InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);//考虑到编码格式BufferedReader bufferedReader = new BufferedReader(read);String lineTxt = null;while((lineTxt = bufferedReader.readLine()) != null){boolean previousWasASpace = false;for (char c : (lineTxt+"\n").toCharArray()) {if (c == ' ') {if (previousWasASpace) {builder.append(" ");previousWasASpace = false;continue;}previousWasASpace = true;} else {previousWasASpace = false;}switch (c) {case '<':builder.append("<");break;case '>':builder.append(">");break;case '&':builder.append("&");break;case '"':builder.append("");break;case '\n':builder.append("<br>");break;// We need Tab support here, because we print StackTraces as HTMLcase '\t':builder.append("     ");break;default:builder.append(c);}}}read.close();String converted = builder.toString();String str = "(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'\".,<>?«»“”‘’]))";Pattern patt = Pattern.compile(str);Matcher matcher = patt.matcher(converted);converted = matcher.replaceAll("<a href=\"$1\">$1</a>");return converted;}else{logger.error("找不到指定的文件");return null;}} catch (Exception e) {logger.error("读取文件内容出错");e.printStackTrace();return null;}}//判断编码格式方法private static  String getFilecharset(File sourceFile) {String charset = "GBK";byte[] first3Bytes = new byte[3];try {boolean checked = false;BufferedInputStream bis = new BufferedInputStream(new FileInputStream(sourceFile));bis.mark(0);int read = bis.read(first3Bytes, 0, 3);if (read == -1) {return charset; //文件编码为 ANSI} else if (first3Bytes[0] == (byte) 0xFF&& first3Bytes[1] == (byte) 0xFE) {charset = "UTF-16LE"; //文件编码为 Unicodechecked = true;} else if (first3Bytes[0] == (byte) 0xFE&& first3Bytes[1] == (byte) 0xFF) {charset = "UTF-16BE"; //文件编码为 Unicode big endianchecked = true;} else if (first3Bytes[0] == (byte) 0xEF&& first3Bytes[1] == (byte) 0xBB&& first3Bytes[2] == (byte) 0xBF) {charset = "UTF-8"; //文件编码为 UTF-8checked = true;}bis.reset();if (!checked) {int loc = 0;while ((read = bis.read()) != -1) {loc++;if (read >= 0xF0)break;if (0x80 <= read && read <= 0xBF) // 单独出现BF以下的,也算是GBKbreak;if (0xC0 <= read && read <= 0xDF) {read = bis.read();if (0x80 <= read && read <= 0xBF) // 双字节 (0xC0 - 0xDF)// (0x80// - 0xBF),也可能在GB编码内continue;elsebreak;} else if (0xE0 <= read && read <= 0xEF) {// 也有可能出错,但是几率较小read = bis.read();if (0x80 <= read && read <= 0xBF) {read = bis.read();if (0x80 <= read && read <= 0xBF) {charset = "UTF-8";break;} elsebreak;} elsebreak;}}}bis.close();} catch (Exception e) {e.printStackTrace();}return charset;}

转自:http://blog.163.com/wf_shunqiziran/blog/static/176307209201258102217810/

java判断txt文件的编码格式相关推荐

  1. python 判断txt文件的编码格式

    import chardetf = open('/path/file.txt',r) data = f.read() print(chardet.detect(data)) 返回值会是类似这样的  一 ...

  2. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  3. java读取txt文件乱码解决方案

    因为txt默认的选项是ANSI,即GBK编码.GBK和GB2312都是中文编码,在这里解释一下两者的区别. 总体说来,GBK包括所有的汉字,包括简体和繁体.而gb2312则只包括简体汉字. GBK: ...

  4. java对txt文件操作_Java读取txt文件信息并操作。

    一.java读取txt文件内容 importjava.io.BufferedInputStream;importjava.io.BufferedReader;importjava.io.File;im ...

  5. java读取txt文件

    java如何读入txt文本文件的内容:java从txt文件中读取内容有多种方法,包括按照行读取文件,按照字节读取文件,首先我们来看看按照行读取txt文件中的内容的一般的步骤: 首先是我们创建一个fil ...

  6. JAVA编程TXT文件_java读写txt文件的方法

    java读写txt文件的方法 发布时间:2020-06-26 15:54:02 来源:亿速云 阅读:111 作者:Leah 本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解, ...

  7. Java读取txt文件、excel文件的方法

    Java读取txt文件.excel文件的方法 1.读取txt文件 public static String getFileContent(String filePath,String charset) ...

  8. java读取txt文件中的内容

    java读取txt文档中的内容:在这个地方我们输入一个txt文件的路径,就可以读取出txt文档中的内容: public static String readStringFromtxt(String t ...

  9. [java进阶]1.Java读取txt文件和写入txt文件

    1. Java读取txt文件 import java.io.*; import java.util.ArrayList; import java.util.List;public class unit ...

最新文章

  1. linux进程及作业管理实验,Linux 进程及作业管理(示例代码)
  2. 使用Python,将字符串的首字母变为大写,其余都变为小写
  3. CSS3 flexbox 布局 ---- flex项目属性介绍
  4. Ug文档服务器,ug服务器
  5. centos nginx重启_nginx学习笔记
  6. ES6的新特性(8)——数组的扩展
  7. 再次献给那些心软的人!!!
  8. 如何在不安装 Microsoft Office 的情况下生成 Excel 文件?
  9. 字节跳动专家会_字节跳动招聘直播策略运营专家/经理/海外财务AR BP,ACCA优先...
  10. LeetCode 129. 求根到叶子节点数字之和(DFS)
  11. java 3位小数_数字有效小数第三位四舍五入
  12. Python 列表 reverse( )方法
  13. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
  14. SiamFC复现结果
  15. linux局域网聊天软件,自制局域网内聊天与图片传输小软件
  16. 【HDU5857】Median
  17. 2018年的好书基本都在这了,你一共读过几本?
  18. 科海故事博览杂志科海故事博览杂志社科海故事博览编辑部2022年第15期目录
  19. Linux部署k8s集群
  20. 苹果app退款_苹果app退款流程:App Store应用如何申请iOS退款教程

热门文章

  1. 国瀚实业|打算投资理财,这些事要准备好
  2. OpenWrt操作系统移植SIM7600CE驱动及调试
  3. 扇形导航 html svg
  4. Error 403 No valid crumb was included in the request 报错解决 容器化jenkins关闭CSRF
  5. 基于WEB在线音乐工厂的设计与实现
  6. terraform_有关使用terraform优化云成本的权威指南
  7. 人脉就是钱脉,培养人脉的106个技巧
  8. Ubuntu 配置亚马逊 aws cli 上传文件文件夹至 亚马逊 AWS S3
  9. flask python 上传图片或头像
  10. 服务器被黑 追寻ip_网站服务器被攻击了如何查找木马(webshell)IP 篡改的痕迹...