【问题标题】:problems with reading of text file in java在java中读取文本文件的问题
【发布时间】:2019-04-19 09:46:01
【问题描述】:

我使用 FileWriter 来保存 CSV 文件(文本文件)。 当我使用 sublime text 这样的文本编辑器阅读它时,一切似乎都很好。 但是当我用 java 阅读时,我得到了一些讨厌的字符,无论如何我尝试阅读它。

阅读示例:

StringBuilder sb=new StringBuilder();
        try {
            String ligne;

            BufferedReader fichier1 = new BufferedReader(new FileReader(nom_office));
            while ((ligne = fichier1.readLine()) != null) {
                sb.append(ligne);
            }
            fichier1.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        //String totalité = new String(encoded, encoding);
        String totalité = sb.toString();

以下这些语句的结果是:

System.out.println("##############");
System.out.println(totalité);

PK! T��ep [Content_Types].xml �(�
“TKn.0.W”“o..EUU”,[$.L/.i“m.k.IO)”

...等等。 为什么它与崇高文本中的结果不同?

【问题讨论】:

  • 读取文件时必须使用正确的编码BufferedReader in = new BufferedReader( new InputStreamReader(new FileInputStream(<file>), <encoding>));
  • 您似乎没有阅读您编写的实际 CSV 文件,而是阅读了其他内容。写入时打印文件的绝对路径。读取文件时打印文件的绝对路径。
  • 看起来像一个编码问题,即文本文件不是简单的 ASCII 文本,而是 UTF-8 或其他。 Sublime 大概会检测到实际的编码并相应地处理它。您能否发布编写代码,因为我怀疑它正在输出具有读者也需要支持的字符编码的文本。
  • 您似乎正在尝试读取某些 Exell 文件。
  • 看起来您正在尝试完全阅读一些 HTTP 下载内容,而无需剥离标头、观察内容编码等。

标签: java csv filereader


【解决方案1】:

BufferedReader 使用可能不是UTF-8 的默认系统编码,而这正是您需要的。试试这个: BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(file), "UTF-8")); 此外,您的 IDE 控制台需要配置为使用 UTF-8,这非常重要!

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 2014-07-14
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2012-10-23
    • 2011-09-28
    • 1970-01-01
    相关资源
    最近更新 更多