-1

我有数据格式为的文件

userid, friend id, books id, cd id
1, 11 12 14 12, 223 256 333 234 222, 22
2, 78 22, 22 66 11 29, 76 455
3, 123 22 11 234 198 122 881, 34 12 98 64, 22

我只需要使用用户 id 和 cd id,但我无法分隔这些字段。

我的Java代码如下。

BufferedReader in = new BufferedReader(new FileReader("CSV_test.txt"));

BufferedWriter ou =new BufferedWriter(new FileWriter("users.csv"));
String str;
str = in.readLine();

while ((str = in.readLine()) != null) {

  String[] ar = str.split(",");
  String[] ar1 = ar[1].split("");


  ou.write(ar[0]);
  ou.write(",");
  ou.write(ar1[1]);

  ou.newLine(); }
in.close();
ou.close();
}

这有什么问题吗?

4

2 回答 2

4

你肯定想要

 String[] ar = str.split(",");
 String user = ar[0].trim();
 String cd = ar[3].trim();

请注意,我正在修剪以删除前导/尾随空格。

您可以使用拆分", "(注意尾随空格),这样就不需要进一步trim(). 但是,它确实对您的字段如何分隔(逗号?逗号和空格?)做出了一些假设,也许值得研究CSV 库

于 2013-01-17T12:48:50.757 回答
3

无需重新发明轮子。虽然 CSV 解析相当简单,但有些事情可能有点复杂(例如转义字段值中的分隔符)。现有的库可以为您执行此操作,例如OpenCSVCsvJdbc

于 2013-01-17T12:51:17.683 回答