JAVA 文件编码转换
2014-04-25 21:25
501 查看
这是我的第一篇文章,主要用JAVA实现文件编码的转换,方便window到linux文件拷贝
下面是实现的方法:
Gbk_To_Utf8.java
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.util.ArrayList;
public class Gbk_To_Utf8 {
public static void ProcessFile(String inputPath,String outputPath
,String InputFormat,String OuputFormat) throws IOException{
FileAllFileOnPath file = new FileAllFileOnPath();
ArrayList path;
file.tree(new File(inputPath));
//保存文件目录下的所有文件
path = file.getfile();
for(int i = 0;i<path.size();i++){
//打开文件,使用InputFormat指定的格式
File files = new File(path.get(i).toString());
InputStreamReader read = new InputStreamReader(
new FileInputStream(files),InputFormat);
BufferedReader reader = new BufferedReader(read);
String line;
String temp = new String();
while ((line = reader.readLine()) != null) {
temp += line+"\n";
}//写入文件,使用OutputFormat指定的格式
BufferedWriter writer = null;
if(!outputPath.endsWith("/")){
outputPath = outputPath+"/";
}
FileOutputStream writerStream = new FileOutputStream(
outputPath + files.getName());
writer = new BufferedWriter(
new OutputStreamWriter(writerStream, OuputFormat));
writer.write(temp);
writer.close();
}
}
}
class FileAllFileOnPath {
private static ArrayList list = new ArrayList<String>();
private static long filenum;
public static ArrayList getfile(){//返回文件列表
return list;
}
//显示目录的方法
public static void tree(File f){
//判断传入对象是否为一个文件夹对象
if(!f.isDirectory()){
System.out.println("请检查路径是否有误!!");
}
else{
File[] t = f.listFiles();
for(int i=0;i<t.length;i++){
//判断文件列表中的对象是否为文件夹对象,如果是则执行tree递归,直到把此文件夹中所有文件输出为止
if(t[i].isDirectory()){
tree(t[i]);
}
else{
// System.out.println(t[i].getPath());
list.add(t[i].getPath());
filenum++;
}
}
}
}
}
下面是测试代码:
Test.java
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException{
Gbk_To_Utf8.ProcessFile("C:/Users/xy_lr/Desktop/80原文",
"D:/80/", "GBK", "utf-8");
}
}
这是第一次写文章,有什么问题希望大家帮我指出来,谢谢
下面是实现的方法:
Gbk_To_Utf8.java
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.util.ArrayList;
public class Gbk_To_Utf8 {
public static void ProcessFile(String inputPath,String outputPath
,String InputFormat,String OuputFormat) throws IOException{
FileAllFileOnPath file = new FileAllFileOnPath();
ArrayList path;
file.tree(new File(inputPath));
//保存文件目录下的所有文件
path = file.getfile();
for(int i = 0;i<path.size();i++){
//打开文件,使用InputFormat指定的格式
File files = new File(path.get(i).toString());
InputStreamReader read = new InputStreamReader(
new FileInputStream(files),InputFormat);
BufferedReader reader = new BufferedReader(read);
String line;
String temp = new String();
while ((line = reader.readLine()) != null) {
temp += line+"\n";
}//写入文件,使用OutputFormat指定的格式
BufferedWriter writer = null;
if(!outputPath.endsWith("/")){
outputPath = outputPath+"/";
}
FileOutputStream writerStream = new FileOutputStream(
outputPath + files.getName());
writer = new BufferedWriter(
new OutputStreamWriter(writerStream, OuputFormat));
writer.write(temp);
writer.close();
}
}
}
class FileAllFileOnPath {
private static ArrayList list = new ArrayList<String>();
private static long filenum;
public static ArrayList getfile(){//返回文件列表
return list;
}
//显示目录的方法
public static void tree(File f){
//判断传入对象是否为一个文件夹对象
if(!f.isDirectory()){
System.out.println("请检查路径是否有误!!");
}
else{
File[] t = f.listFiles();
for(int i=0;i<t.length;i++){
//判断文件列表中的对象是否为文件夹对象,如果是则执行tree递归,直到把此文件夹中所有文件输出为止
if(t[i].isDirectory()){
tree(t[i]);
}
else{
// System.out.println(t[i].getPath());
list.add(t[i].getPath());
filenum++;
}
}
}
}
}
下面是测试代码:
Test.java
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException{
Gbk_To_Utf8.ProcessFile("C:/Users/xy_lr/Desktop/80原文",
"D:/80/", "GBK", "utf-8");
}
}
这是第一次写文章,有什么问题希望大家帮我指出来,谢谢
相关文章推荐
- java中的值传递和引用传递
- 冒泡排序 java
- eclipse开发Web程序过程中连接数据库时出现了ClassNotFoundException异常
- 高质量Java英文博客
- Spring通过注解得到的值为null,但getbean()可以得到。
- Java容器中的Set基本用法
- The Comparator and Comparable in Java
- java中文件的相对路径以及jar中文件的读取
- java集合
- java 异常处理练习(毕向东)
- Spring 注解实现AOP通知
- Java连接mySql—JDBC连接数据库
- Java分布式应用学习笔记06浅谈并发加锁机制分析
- spring事务的传播性的理解
- java停止线程
- java设置小数点后位数
- Java-WebSocket 项目的研究(二) :客户端连接服务器并发送消息实例
- MAC下Android的Eclipse开发环境的搭建
- 1.深入java枚举类型
- struts.xml 标签顺序