针对以&#开头,以;结尾的文档转中文的一些想法

起因是发现一些txt文档中混有夯所以小说看不懂,于是二话不说盘它,先是在网上搜知道他的真实身份 ,接着在看了网上的大身的代码和测试后有一些想法,为了省事借用网上大佬的代码,代码如下

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*** 将本地文件以哪种编码输出* @param inputfile 输入文件的路径* @param outfile 输出文件的路径* @param code 输出文件的编码* @throws IOException*/
public class Charchange{public static void main(String[] args) throws IOException {String inputfile,outputfile,code;inputfile = "D:\\迅雷\\work\\fen\\2-temp-test.txt";//要转码的文件outputfile = "D:\\迅雷\\work\\1.txt";//输出的文件code = "utf-8";System.out.println("转码开始");convert(inputfile,outputfile,code);System.out.println("转码完成");}
public static  void convert(String inputfile,String outfile,String code) throws IOException {StringBuffer sb = new StringBuffer();StringBuffer sb2 = new StringBuffer();//得到当前文件的编码String ch=getCharset(inputfile);InputStreamReader isr=null;OutputStreamWriter osw =null;//根据当前文件编码进行解码if(ch.equals("UTF8")){isr= new InputStreamReader(new FileInputStream(inputfile), "UTF-8");    }else if(ch.equals("Unicode")){isr= new InputStreamReader(new FileInputStream(inputfile), "Unicode");    }else {isr= new InputStreamReader(new FileInputStream(inputfile), "GB2312");    }//将字符串存入StringBuffer中BufferedReader br = new BufferedReader(isr);        String line = null;while ((line = br.readLine()) != null) {sb.append(line + "\n");}        br.close();isr.close();//以哪种方式写入文件if("UTF-8".equals(code)){osw = new OutputStreamWriter(new FileOutputStream(outfile), "UTF-8");}else if("GB2312".equals(code)){osw = new OutputStreamWriter(new FileOutputStream(outfile), "GB2312");}else if("Unicode".equals(code)){osw = new OutputStreamWriter(new FileOutputStream(outfile), "Unicode");}else{osw = new OutputStreamWriter(new FileOutputStream(outfile), "UTF-8");}BufferedWriter bw = new BufferedWriter(osw);String sb1 = sb.toString();String a1 = deal(sb1);bw.write(a1);bw.close();osw.close();
}/*** 根据文件路径判断编码* @param str* @return* @throws IOException*/
private static String getCharset(String str) throws IOException{ BytesEncodingDetect s = new BytesEncodingDetect();   String code = BytesEncodingDetect.javaname[s.detectEncoding(new File(str))];  return code;
} //本方法完成单个无字符的转换
public static String Change(String temp){String myString = temp.replace("&#", "");String[] split = myString.split(";");StringBuilder sb = new StringBuilder();for (int i = 0; i < split.length; i++)
{sb.append((char)Integer.parseInt(split[i]));
}
return sb.toString();
}//接收String sb1并对字符串的联合处理
public static String deal(String sb1) {//模块化开始String car="";//小车运输单个字符while(sb1.length()!=0){int markStar = sb1.indexOf("&#");//判断方法是以&开头的数据默认为要处理的无字符if(markStar==0){String temp = sb1.substring(markStar,8);car = car+Change(temp);sb1=sb1.substring(8);}else if(markStar==-1&sb1.length()>0){String temp = sb1.substring(0,sb1.length());car = car+temp;sb1=sb1.substring(sb1.length());        }else{String temp = sb1.substring(0,markStar);car = car+temp;sb1=sb1.substring(markStar);}}return car.toString() ;
}
}

我感觉deal方法应该可以再优化一些希望大老再给些思路
我的方法是对String字符串进行单个判断并重写
最后借助流输出到文件

针对以#开头,以;结尾的文档转中文的一些想法相关推荐

  1. [产品03]-项目工作流程-产品启动/规划/执行/跟进/结尾/产品文档

    [产品03]-项目工作流程-产品启动/规划/执行/跟进/结尾/产品文档 [启动--规划--执行--跟进--收尾] 一.启动 1-1行业调研 1-2市场调研 二.规划 2-1需求采集 2-2需求分析 2 ...

  2. java之全文索引搜索lucene之增删改查文档与中文分词搜索

    java之全文索引搜索lucene之增删改查文档与中文分词搜索 接上文,接下来介绍一个lucene的各种query,然后介绍一下中文全文索引搜索. 对于各种query,我就直接上代码了,具体的话,我已 ...

  3. java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)

    java-pdf-itext 生成pdf 文档(支持中文字体) itext 版本:2.1.7 package com.demo.preview; import java.io.ByteArrayOut ...

  4. html帮助文档乱码,使用doxygen生成的帮助文档,中文出现乱码的问题

    今天使用doxygen工具生成帮助文档发现中文注释都是乱码. 然后根据网上的要求把 Exper>>Input>>INPUT_ENCODING:(输入文件的编码) UTF-8 改 ...

  5. python借助jieba包对单独test和txt文档进行中文分词

    python借助jieba包对单独test和txt文档进行中文分词 一.单独test分词 import jieba jieba.cut("大连圣亚在大连") *#输出:<ge ...

  6. linux-man手册使用-ubuntu设置man帮助文档显示中文-man手册少章节

    linux-man手册使用-ubuntu设置man帮助文档显示中文-man手册少章节 man手册添加与安装 man命令基本介绍 修改man手册默认语言-显示中文 man手册添加与安装 发现系统中缺少很 ...

  7. GeoPandas官方快速入门文档(中文翻译版)

    GeoPandas官方快速入门文档(中文翻译版) 原文链接>>Introduction to GeoPandas 点这里可以一键跑通>>GeoPandas 简介 GeoPand ...

  8. GRUB4DOS中文自述文档;Grub4dos中文ReadMe

    GRUB4DOS中文自述文档 版本:0.4.4-2009-03-18 英文版作者:tinybit (tinybit@tom.com) 中文版译者:zw2312914(zw2312914@126.com ...

  9. 后端开发常用框架文档及中文翻译

    https://www.docs4dev.com 包含 Spring 系列文档(Spring, Spring Boot, Spring Cloud, Spring Security, Spring S ...

最新文章

  1. mysql ibd文件还原_Mysql 通过ibd文件恢复数据
  2. .Net 反汇编调试教程
  3. [转帖]linux下的X server:linux图形界面原理
  4. TUST 数据库原理 试卷(A)
  5. 210228Linux 条件变量 线程池
  6. Java讲课笔记10:类的封装
  7. ad采样频率_AD转换器是什么?快来一起学习一下
  8. 42.Linux/Unix 系统编程手册(下) -- 共享库高级特性
  9. javascript 推拉式菜单
  10. 知行之桥®中文版EDI系统正式发布
  11. CAS4 之 集成RESTful API
  12. docker官方文档翻译5
  13. 【数据结构】最小瓶颈路 加强版(Kruskal重构树RMQ求LCA)
  14. 睡不着觉--安卓计数器给我数绵羊
  15. PotPlayer会造成obs录制声音忽大忽小
  16. 电脑的“应用与浏览器控制”出现黄色感叹号
  17. python拟合统计分布_利用 Python Fitter 判断数据样本符合那种分布函数
  18. mysql的default_sql语句中default是什么意思?
  19. 《卓有成效的管理者》阅读思路分析
  20. 推荐5款自学手机APP,请低调收藏,让你变得越来越优秀

热门文章

  1. 【云原生】设备云之基于FlexManager的C#SDK开发案例代码
  2. 基于SSM的饭店点餐收银管理系统【数据库设计、源码、开题报告】
  3. 用二维数组生成随机数可控制范围C语言
  4. 基因遗传算法——Genetic Algorithm
  5. Adams功能区空白的解决方法
  6. 《惢客创业日记》2018.11.11(周日) 独角兽的婴儿时期是什么样的?
  7. fms中视频所处位置
  8. 陈嘉哲:7.7晚间现货期货行情解析、黄金原油走势分析。
  9. 初级会计实务--第四章第二节、资本公积
  10. 抖音本地生活服务商贴牌小程序