新浦京网投站网止,澳门新浦京26999com

    欢迎访问澳门新浦京26999com~

  1. 加入收藏
  2. 设为主页
  3. 学校简介
北大青鸟

三分钟了解北大青鸟

×
  • 北大青鸟大数据课程
  • 北大青鸟网络工程师
  • 北大青鸟web设计专业
  • 北大青鸟PHP专业
  • 北大青鸟启蒙星课程

JAVA批量转换文件编码

责任编辑:澳门新浦京26999com来源:澳门新浦京26999comJava技术教程发布时间:2013-01-24 10:01
导读:可用来批量转换代码的编码.并保持文件段落及缩进,如果是目录则递归调用此方法.继续检索,以默认编码读取文件内容.并以字条串返回。

package file;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
/**
* 可用来批量转换代码的编码.并保持文件段落及缩进
* @author Justin
*
*/
public class FileList {
//获取某个目录下面的所有文件
public File[] getFileDir(String dir) {
File dataDir = new File(dir);
File[] dataFiles = dataDir.listFiles();
return dataFiles;
}

public boolean getFileList(String dir) {
boolean isSucc = false;
File dataDir = new File(dir);
File[] dataFiles = dataDir.listFiles();
try {
for (int i = 0; i < dataFiles.length; i++) {
//如果是目录则递归调用此方法.继续检索
if (dataFiles[i].isDirectory()) {
getFileList(dataFiles[i].getCanonicalPath());
} else {
//文件过滤,如无需此项注释此处即可
if (dataFiles[i].isFile()
&& (dataFiles[i].getName().endsWith(".jsp")
|| dataFiles[i].getName().endsWith(".html") || dataFiles[i]
.getName().endsWith(".htm"))
|| dataFiles[i].getName().endsWith(".js")
|| dataFiles[i].getName().endsWith(".java")) {

writeFile(dataFiles[i].getAbsolutePath(),
dataFiles[i].getAbsolutePath()
.substring(
2,
dataFiles[i].getAbsolutePath()
.length()));
}
}

}
} catch (IOException e) {
e.printStackTrace();
}
return isSucc;
}
//以默认编码读取文件内容.并以字条串返回
private String readFile(String templet) {
String templetContent = "";

try {
FileInputStream fileinputstream = new FileInputStream(templet);
int length = fileinputstream.available();
byte bytes[] = new byte[length];
fileinputstream.read(bytes);
fileinputstream.close();
templetContent = new String(bytes);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return templetContent;
}
// 以UTF-8读取文件内容.并以字条串返回
private String readFileUTF_8(String templet) {
String templetContent = "";

try {
FileInputStream fileinputstream = new FileInputStream(templet);
int length = fileinputstream.available();
byte bytes[] = new byte[length];
fileinputstream.read(bytes);
fileinputstream.close();
templetContent = new String(bytes, "UTF-8");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return templetContent;
}
//在新文件夹建立相同的目录结构
private void makeDir(String path) {
File fileStr = new File(path);
File file = new File(fileStr.getParent());

if (!file.exists()) {
file.mkdirs();
}
}

public boolean writeFile(String realPath, String fileName) {
boolean isSucc = false;
String templet = realPath;
String newFile = "D:/NewFiles/"
+ fileName.substring(1, fileName.length());
makeDir(newFile);
String templateContent = "";

//读取文件内容.如需以UTF-8读取.换成readFileUTF_8(filePath)即可
templateContent = readFile(templet);

//如果是网页或其它注明了编码的文件.用此方法替换
templateContent = templateContent.replaceAll("gb2312", "UTF-8");
templateContent = templateContent.replaceAll("gbk", "UTF-8");

/*
templateContent = templateContent.replaceAll("UTF-8", "GBK");
templateContent = templateContent.replaceAll("utf-8", "GBK");*/
//templateContent = templateContent.replaceAll("GB2312", "UTF-8");
//templateContent = templateContent.replaceAll("gbk", "UTF-8");
//System.out.println("输出:" + templateContent);

isSucc = writeNewFile(newFile, templateContent);
System.out.println("输出:" + newFile);

return isSucc;

}
/**
* 以UTF-8形式写新文件
* @param newFile
* @param templetContent
* @return
*/
private boolean writeNewFile(String newFile, String templetContent) {
boolean isSucc = false;
try {
FileOutputStream fout = new FileOutputStream(newFile);
OutputStreamWriter out = new OutputStreamWriter(
new BufferedOutputStream(fout), "UTF-8");
out.write(templetContent);
out.close();
fout.close();
isSucc = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return isSucc;
}

/**
* @param args
*/
public static void main(String[] args) {

FileList fl = new FileList();
fl.getFileList("D:\\speciality");

}

}


本文标题:JAVA批量转换文件编码,责任编辑:澳门新浦京26999com,来源:武汉宏鹏,于2013年01月24日10时01分发布于澳门新浦京26999com。新浦京网投站网止宏鹏鲁广校区,是北大青鸟武汉电脑学校,专业IT计算机培训,拥有软件/网络/安卓/Web前端/Java课程.北大青鸟地址:光谷广场鲁巷数码港.电话:027-87807717

专业老师指导

专业老师指导

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业。

培训咨询客服

培训咨询客服

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑。

本文地址:
文章标题:
  • 北大青鸟Java软件开发
  • 北大青鸟UI设计课程_零基础可学
  • 北大青鸟动漫设计_武汉设计学校
  • 北大青鸟数字艺术_武汉电脑学校
在线咨询
×
在线咨询更多问题

如您有任何疑问
在线咨询随时为您解答或拨打咨询热线:17740513250

×
  • 姓 名*
  • 手 机*
  • QQ号/微信号
  • 所报学科 *
  • 其他备注
  • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。