把java文件编码转换_Java文件编码转换

我需要将文件的编码从ANSI(

windows-1252)更改为UTF8.我写下面的程序是通过

java来完成的.此程序将字符转换为UTF8,但是当我在notepade中打开文件时,编码类型显示为ANSI为UTF8.当我在访问数据库中导入此文件时,这会给我带来错误.仅需要具有UTF8编码的文件.此外,还要求转换文件而不在任何编辑器中打开它.

公共类ConvertFromAnsiToUtf8 {

private static final char BYTE_ORDER_MARK = '\uFEFF';

private static final String ANSI_CODE = "windows-1252";

private static final String UTF_CODE = "UTF8";

private static final Charset ANSI_CHARSET = Charset.forName(ANSI_CODE);

public static void main(String[] args) {

List fileList;

File inputFolder = new File(args[0]);

if (!inputFolder.isDirectory()) {

return;

}

File parentDir = new File(inputFolder.getParent() + "\\"

+ inputFolder.getName() + "_converted");

if (parentDir.exists()) {

return;

}

if (parentDir.mkdir()) {

} else {

return;

}

fileList = new ArrayList();

for (final File fileEntry : inputFolder.listFiles()) {

fileList.add(fileEntry);

}

InputStream in;

Reader reader = null;

Writer writer = null;

try {

for (File file : fileList) {

in = new FileInputStream(file.getAbsoluteFile());

reader = new InputStreamReader(in, ANSI_CHARSET);

OutputStream out = new FileOutputStream(

parentDir.getAbsoluteFile() + "\\"

+ file.getName());

writer = new OutputStreamWriter(out, UTF_CODE);

writer.write(BYTE_ORDER_MARK);

char[] buffer = new char[10];

int read;

while ((read = reader.read(buffer)) != -1) {

System.out.println(read);

writer.write(buffer, 0, read);

}

}

reader.close();

writer.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

任何指针都会有所帮助.

谢谢,

阿希什

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用InputStreamReader和OutputStreamWriter将UTF-8编码文件转换为ANSI编码文件。以下是一个示例代码: ```java import java.io.*; public class UTF8ToANSIConverter { public static void main(String[] args) throws IOException { // 读取UTF-8编码文件 FileInputStream inputStream = new FileInputStream("input.txt"); InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8"); // 写入ANSI编码文件 FileOutputStream outputStream = new FileOutputStream("output.txt"); OutputStreamWriter writer = new OutputStreamWriter(outputStream, "ANSI"); // 逐行读取并写入文件 BufferedReader bufferedReader = new BufferedReader(reader); BufferedWriter bufferedWriter = new BufferedWriter(writer); String line; while ((line = bufferedReader.readLine()) != null) { bufferedWriter.write(line); bufferedWriter.newLine(); } // 关闭流 bufferedReader.close(); bufferedWriter.close(); } } ``` 在上面的示例代码中,首先使用FileInputStream和InputStreamReader读取UTF-8编码文件,然后使用FileOutputStream和OutputStreamWriter写入ANSI编码文件。由于UTF-8和ANSI编码的字符集不同,因此在创建InputStreamReader和OutputStreamWriter时需要指定相应的字符集。最后使用BufferedReader和BufferedWriter逐行读取和写入文件,并在写入每行时加上换行符。读写完成后,关闭流即可。 需要注意的是,将UTF-8编码文件转换为ANSI编码时可能会出现乱码或字符集不兼容的情况,因此建议在转换前备份原文件,以防数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值