java judgefilecode_java更改文件的编码格式

ObjectStream 操作对象 ObjectInputStream和ObjectOutputStream 被操作的对象需要实现Serializable(标记接口) ObjectOutputStream 将 java 对象的基本数据类型和图形写入OutputStream。可以使用ObjectInputStream读取(重构)对象,通过在流中使用文件可以

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.Writer;

/**

*

*/

/**

* @author weict

*

*/

public class ChangeFileCode {

// 读取的文件

private String fileIn;

// 读取時文件用的编码

private String fileInEn;

// 写出的文件

private String fileOut;

// 写出時文件用的编码

private String fileOutEn;

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

}

public void setFileIn(String fileInPath, String fileInEncoding) {

this.setFileIn(fileInPath);

this.setFileInEn(fileInEncoding);

}

public void setFileOut(String fileOutPath, String fileOutEncoding) {

this.setFileOut(fileOutPath);

this.setFileOutEn(fileOutEncoding);

}

public void start() {

String str = this.read(fileIn,fileInEn);

this.write(fileOut, fileOutEn, str);

}

/**

* 读文件

*

* @param fileName

* @param encoding

*/

private String read(String fileName, String encoding) {

try {

BufferedReader in = new BufferedReader(new InputStreamReader(

new FileInputStream(fileName), encoding));

String string = "";

String str = "";

while ((str = in.readLine()) != null) {

string += str + "\n";

}

in.close();

System.out.println(string);

return string;

} catch (Exception ex) {

ex.printStackTrace();

}

return "";

}

/**

* 写文件

*

* @param fileName

* 新的文件名

* @param encoding

* 写出的文件的编码方式

* @param str

*/

private void write(String fileName, String encoding, String str) {

try {

Writer out = new BufferedWriter(new OutputStreamWriter(

new FileOutputStream(fileName), encoding));

out.write(str);

out.close();

} catch (Exception ex) {

ex.printStackTrace();

}

}

public String getFileIn() {

return fileIn;

}

public void setFileIn(String fileIn) {

this.fileIn = fileIn;

}

public String getFileInEn() {

return fileInEn;

}

public void setFileInEn(String fileInEn) {

this.fileInEn = fileInEn;

}

public String getFileOut() {

return fileOut;

}

public void setFileOut(String fileOut) {

this.fileOut = fileOut;

}

public String getFileOutEn() {

return fileOutEn;

}

public void setFileOutEn(String fileOutEn) {

this.fileOutEn = fileOutEn;

}

}

使用例子如下:

import java.io.File;

/**

* @author weict

*

*/

public class Demo {

/**

* @param args

*/

public static void main(String[] args) {

String path = "文件路径";

File file = new File(path);

String fileCode = JudgeFileCode.getFileCode(file);

if(fileCode.equals("UTF-8")){

ChangeFileCode changeFileCode = new ChangeFileCode();

changeFileCode.setFileIn(file.getPath(), "UTF-8");//如果文件编码为ANSI用GBK来读,用java小例题说明更直观:(可以直接编译运行) 环境我在windows平台下测试的。。。 需要在e:\下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll共4个文件。 如何得到这4个文件参考文章http://blog.sina.com.cn/u/4a424eca010005kb 还要在e:\input下放各种如果是UTF-8用UTF-8来读

changeFileCode.setFileOut(file.getPath(), "GBK");//UTF-8则文件编码为UTF-8, 如果为GBK,编码为ANSI

changeFileCode.start();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值