java - 读/写会产生奇怪的字符

标签 java file text character

我编写了一些简单的 Java 代码来从文本文件中读取字符串、组合它们,然后将它们写回。 (请参阅下面的代码片段,了解输出没有变化的简化版本)

问题是输入文件和输出文件中的特定字符(- 和 ...)不同。破折号和省略号在输出文件中显示为特殊的、不可读的字符。我无意更改它们,并且我认为应该使用一些特定的编码来避免这种情况。

我在Windows下运行。这些奇怪的字符出现在多个编辑器(记事本、写字板和 Word)中,而不是破折号和省略号。

BufferedReader inFile = new BufferedReader(new FileReader("in.txt"));
PrintWriter out = new PrintWriter(new FileWriter("out.txt"));
String line;
while ((line=inFile.readLine()) != null)
{
     out.println(line);
}

最佳答案

修订

您的输入采用 ANSI windows-1252

所以这应该可以解决问题:

public static void main(String[] args) throws Exception {

        File f = new File("in.txt");
        FileInputStream stream = new FileInputStream(f);
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream, Charset.forName("windows-1252")));
        String x;
        BufferedWriter writer = new BufferedWriter(new FileWriter(new File("testing.txt")));

        while((x = reader.readLine()) != null) {
            writer.write(x);
            writer.newLine();
        }

        writer.close();
}

关于java - 读/写会产生奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12631862/

相关文章:

python - 寻找简单的Python公式来组合两个文本文件

java - 在 JSF2 中呈现 HTML5 按钮(按钮、重置和提交)

file - Shiny 地从上传的数据框中选择特定的列

r - 文本比较中adist函数的问题

ruby-on-rails - 在 Ruby on Rails 中,send_file 方法后从服务器删除文件

bash:对于文件是否存在?

php - 如果可能,如何使用 PHP 从外部网站获取数据(文本)?

java - 循环中未使用的变量

java - hibernate-添加到 Set 会导致 InvocableTargetException

java - java套接字的问题