【发布时间】: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