gpt4 book ai didi

java - 导入的 CSV 文件开头出现奇怪的符号

转载 作者:行者123 更新时间:2023-12-01 19:39:01 24 4
gpt4 key购买 nike

我正在将一个 CSV 文件解析到我的 JTable 中。问题是每次我的第一张唱片前面都会出现一些奇怪的符号。这是我的代码:

JFileChooser chooser=new JFileChooser();
chooser.showOpenDialog(null);
File f=chooser.getSelectedFile();
String filename=f.getAbsolutePath();
pathF.setText(filename);

try {
FileReader fr=new FileReader(f);
BufferedReader br= new BufferedReader(fr);

DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
Object [] lines=br.lines().toArray();
for(int i=0;i<lines.length;i++){
String []row=lines[i].toString().split(";");
model.addRow(row);
}

所以一切正常,但在第一条记录前面出现奇怪的符号。这是输出: Screenshot of Application with occuring symbols

正如你所看到的,i10 前面有一个空的方 block 。当然,这是某个字符,但我怎样才能摆脱它,因为由于这个字符,程序假设 i10 和 (square)i10 是不同的人。我还用 System.out.println(lines[i].toString()); 进行了检查,结果是: enter image description here

您可以清楚地看到第一行中不需要的符号。我该如何修复它?

最佳答案

它被称为BOM(字节顺序标记)。它标记了流的开始,您可以使用 Apache Commons csv 库的 BOMInputStream 将其删除。使用该库读取和解析 csv,它更简单并且提供了很多功能。

类似这样的事情:

BOMInputStream bis = new BOMInputStream(file.getInputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(bis,StandardCharsets.UTF_8));

使用 apache commons 的示例:https://www.callicoder.com/java-read-write-csv-file-apache-commons-csv/

有关 Bom 的更多信息:How to exclude BOM with BOM InputStream

关于java - 导入的 CSV 文件开头出现奇怪的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56060054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com