【发布时间】:2017-05-02 13:16:10
【问题描述】:
我正在尝试使用FileUtils更改txt文件的编码,但是在执行该函数后,我使用NotePad++检查了文件的编码,但是文件的编码没有任何变化。
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class FileManager {
public void changeFileCharset(File file) throws IOException{
String content = FileUtils.readFileToString(file, "ISO-8859-1");
FileUtils.write(file, content, "UTF-8");
}
public static void main(String[] args) throws IOException {
FileManager fileManager = new FileManager();
fileManager.changeFileCharset(new File("unknown_words.txt"));
}
}
我也使用BufferedReader 和BufferedWriter 尝试了这个功能,但我什么也没得到。
public static void transform(File source, String srcEncoding, File target, String tgtEncoding) throws IOException {
try (
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(source), srcEncoding));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(target), tgtEncoding)); ) {
char[] buffer = new char[16384];
int read;
while ((read = br.read(buffer)) != -1)
bw.write(buffer, 0, read);
}
}
public static void main(String[] args) throws IOException {
FileManager manager = new FileManager();
File file = new File("test.txt");
File file1 = new File("test1.txt");
manager.transform(file, "UTF-8", file1, "ISO-8859-1");
}
下面是两张图,分别显示了源文件和目标文件的编码:
使用 NotePad++ 的字符集检查方法不好,还是什么?
有什么想法吗?
【问题讨论】:
标签: java notepad++ apache-commons-io