【发布时间】:2015-12-16 21:31:44
【问题描述】:
我正在开发一个 java 项目。我在 Win7 上使用 JDK1.7 和 Eclipse。 我有一个包含以下记录的 .csv 文件:
317213,384641,1,Closed,-119,-1
317246,317247,1,Closed,8.8,-0.2
317264,317246,1,Closed,92.3,-7.2
317264,317246,2,Open,0,0
此外,我正在从文件中提取这些记录,更新记录,再次存储在文件中。当我获取更新的记录时,我得到以下输出:
"317213","384641","1","Closed","-118.9","-1.0"
"317246","317247","1","Closed","20.8","-0.1"
"317264","317246","1","Closed","104.1","-5.4"
"317264","317246","2","Open","0.0","0.0"
显然,问题在于记录的每个字段中都有“...”。
这是我的代码:
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
address = path + "/networkFile/1/11/B20branch1t.csv" ;
CSVWriter writer = new CSVWriter(new FileWriter(address));
List<String[]> data = new ArrayList<String[]>();
String[] subentries = {};
String answer = "317213,384641,1,Closed,-119,-1,317246,317247,1,Closed,8.8,-0.2,317264,317246,1,Closed,92.3,-7.2,317264,317246,2,Open,0,0";
String[] entries = answer.split(",");
for( c = 0 ; c < entries.length ; c+=6 )
{
subentries = Arrays.copyOfRange(entries, c, c+6) ;
}
writer.writeNext(subentries);
writer.close();
问题可能是因为writer.writeNext(),它可能会在每条记录中写入“...”。
有没有其他方法可以达到同样的效果?我可以使用提到的“数据”列表来实现这一点吗?
【问题讨论】:
-
CSVWriter 类从何而来?
-
导入 com.opencsv.CSVReader;导入 com.opencsv.CSVWriter;
-
你在哪里读的文件?
-
无需读取,只需覆盖。
-
另外,为什么要使用 for 循环?为什么不只是
subentries = answer.split(",");?甚至writer.writeNext(answer.split(","), false);
标签: java string list arraylist