Java操作文件转码
package downloadTest; 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;
import java.net.URLDecoder;
import java.net.URLEncoder; public class ChangeFileEncoding {
public static int fileCount = 0;
public static String sourceFileRoot = "C:/SCApp/Data/file/WU_FILE_RES/1d8ee8836de83e142ee57a293f12c1e6.html"; // 将要转换文件所在的根目录
public static String sourceCharset = "GB2312"; // 源文件编码
public static String targetCharset = "utf8"; // 目标文件编码
public static void main(String[] args) throws IOException {
File fileDir = new File(sourceFileRoot);
convert(fileDir);
System.out.println("Total Dealed : " + fileCount + "Files");
} public static void convert(File file) throws IOException {
// 如果是文件则进行编码转换,写入覆盖原文件
if (file.isFile()) {
// 只处理.java结尾的代码文件
if (file.getPath().indexOf(".html") == -1) {
return;
}
InputStreamReader isr = new InputStreamReader(new FileInputStream(
file), sourceCharset);
BufferedReader br = new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = br.readLine()) != null) {
// 注意写入换行符
line = URLEncoder.encode(line, "utf8");
sb.append(line + "\r\n");//windows 平台下 换行符为 \r\n
}
br.close();
isr.close(); File targetFile = new File(file.getPath());
OutputStreamWriter osw = new OutputStreamWriter(
new FileOutputStream(targetFile), targetCharset);
BufferedWriter bw = new BufferedWriter(osw);
// 以字符串的形式一次性写入
bw.write(URLDecoder.decode(sb.toString(), "utf8"));
bw.close();
osw.close(); System.out.println("Deal:" + file.getPath());
fileCount++;
} else {
//利用递归对目录下的每个以.java结尾的文件进行编码转换
for (File subFile : file.listFiles()) {
convert(subFile);
}
}
} }
Java操作文件转码的更多相关文章
- Java操作文件夹的工具类
Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...
- java操作文件的创建、删除、遍历
java操作文件的创建.删除.遍历: package test; import java.io.File; import java.io.IOException; import java.util.A ...
- Java操作文件
import java.io.File; import java.io.IOException; import java.nio.file.*; import java.nio.file.attrib ...
- Java操作文件那点事
刚开始学Java时候,一直搞不懂Java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己结合API来整理一下,有错的话请指正,也希 ...
- java——操作文件
Java文件操作,共实现了文件复制(单个文件和多层目录文件),文件移动(单个文件和多层目录文件),文件删除(单个文件和多层目录文件),文件压缩 (单个文件),文件解压(单个文件),文件分割(将一个大文 ...
- Java操作文件Util
package io.guangsoft.utils; import java.io.File; import java.io.FileInputStream; import java.io.File ...
- java操作文件常用的 IO流对象
1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序 ...
- java操作文件流对象
所有流对象 InputStream 字节流 FileInputStream 字节流 专门读写非文本文件的 BufferedInputStream 高效流 OutPutS ...
- Java删除文件夹和文件
转载自:http://blog.163.com/wu_huiqiang@126/blog/static/3718162320091022103144516/ 以前在javaeye看到过关于Java操作 ...
随机推荐
- Spring注解@ResponseBody,@RequestBody
@RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象. @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMess ...
- atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc
atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc ...
- Hadoop在线分析处理(OLAP)
数据处理与联机分析处理 ( OLAP ) 联机分析处理是那些为了支持商业智能,报表和数据挖掘与探索等业务而开展的工作.这类工作的样例有零售商按地区和季度两个维度计算门店销售额,银行按语言和月份两个维度 ...
- wifi免密码登录认证流程
您查询的关键词是:weixin:,qrgex_zm- 以下是该网页在北京时间 2016年03月27日 02:46:42 的快照: 如果打开速度慢,可以尝试快速版:如果想保存快照,可以添加到搜藏:如果想 ...
- C# XCOPY命令 预先生成事件命令行”和“后期生成事件命令行”
$(ConfigurationName) 当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir) 输出文件目录的路径,相对于项目目录.这解析为“输出目录”属性的值.它包括尾部 ...
- haproxy+keepalived实现高可用负载均衡(转)
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. ...
- DIV中display和visibility属性差别
DIV中display和visibility属性差别 DIV中display和visibility属性差别还是挺大的,虽然Visibility和Display属性都可以达到隐藏页面元素的目的,但它们的 ...
- Android基础总结(二)布局,存储
常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...
- crontab中运行python程序出错,提示ImportError: No module named解决全过程
将一个python脚本放入crontab执行时,提示如下错:ImportError: No module named hashlib但是在shell中直接执行时没有任何问题,google之后,得到线索 ...
- div随页面滚动遇顶固定的两种方法(js&jQuery)
一.遇顶固定的例子 我一直以为是某个div或层随屏幕滚动,遇顶则固定,离开浏览器顶部又还原这样的例子其实不少,其实它的名字叫“层的智能浮动效果”.目前我们在国内的商业网站上就常常看到这样的效果了.例如 ...