用Java读写文件,同时保留特殊字符

时间:2018-11-01 10:27:02

标签: java file encoding fileutils

读取和写入文件后,项目符号点将替换为符号不可读的文本"�"。这是代码:

String str = FileUtils.readFileToString(new File(sourcePath), "UTF-8");         
nextTextFile.append(redactStrings(str, redactedStrings));
FileUtils.writeStringToFile(new File(targetPath), nextTextFile.toString());

FTDI java library

Link to sample file

1 个答案:

答案 0 :(得分:0)

我在Windows上将其签出,如果源文件是使用UTF-8编码的,则以下代码将向控制台和文件生成所需的输出,然后也将其也以UTF-8编码,以供使用之java.nio

public static void main(String[] args) {
    Path inPath = Paths.get(sourcePath);
    Path outPath = Paths.get(targetPath);

    try {
        List<String> lines = Files.readAllLines(inPath, StandardCharsets.UTF_8);

        lines.forEach(line -> {
            System.out.println(line);
        });

        Files.write(outPath, lines, StandardCharsets.UTF_8);

    } catch (IOException e) {
        e.printStackTrace();
    }
}

请注意,源文件必须使用UTF-8编码,否则可能会抛出IOException,内容类似于Input length = 1。如果StandardCharsets不符合您的要求,请尝试使用它,或者确保源文件的编码为UTF-8