我有一个简单的java程序,它从文件中读取一行并将其写入另一个文件。
我的源文件包含以下字词:it's
,但目标文件包含it�s
等字词。
我使用BufferedReader br = new BufferedReader(new FileReader(inputFile));
来读取源文件,使用PrintWriter writer = new PrintWriter(resultFile, "UTF-8");
来编写目标文件。
如何获取目标文件中的实际字符?
答案 0 :(得分:2)
创建BufferedReader时需要指定CharacterSet,否则使用平台默认编码:
BufferedReader br = new BufferedReader(new FileReader(inputFile),"UTF-8");
答案 1 :(得分:0)
我知道这个问题有点老了,但我还是认为我已经放下了我的答案。
您可以使用java.nio.file.Files读取文件,使用java.io.RandomAccessFile写入目标文件。例如:
public void copyContentsOfFile(File source, File destination){
Path p = Paths.get(source.toURI());
try {
byte[] bytes = Files.readAllBytes(p);
RandomAccessFile raf = new RandomAccessFile(destination, "rw");
raf.writeBytes(new String(bytes));
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}