javacsv写⼊_每⾏写⼊新的CSV⽂件(JAVA)
我有以下代码:
public static void main(String[] args) throws IOException {
//File being read:
String fileName = "src/data/Belgium.csv";
String[] nextLine;
try (CSVReader reader = new CSVReader(new FileReader(fileName), ',', '"', 1)) {
while ((nextLine = adNext()) != null) {
for (String line : nextLine) {
//NewFile
//When 2nd parameter - ture, it gets so big, that excel can't handle
FileWriter writer = new FileWriter("src/dataNew/BelgiumNew1.csv", true);
line = placeAll("T", " ");
line = placeAll("Z", "");
line = placeAll("an", "");
line = placeAll("Plantname:", "");
//Escaping curly braces is a must!
line = placeAll("\\{", "");
line = placeAll("\\}", "");
writer.append(line);
writer.flush();
writer.close();
System.out.println(line);
}
}System.out.println("Successfully written");
}
}
在控制台中,使⽤System.out.println(line)输出的代码为我提供了正确的输出。但是,当我打开CSV⽂件时,它似乎是反向写⼊的。Excel ⾸先抱怨⾏数。但是,仅显⽰原始数据集的最后⼀⾏。数据集(以⼀种低效的⽅式进⾏了预处理)包含1000多个⾏。因此,我不能简单地附加每个条⽬。
有更好的⽅法吗?
提⽰和技巧⾮常受欢迎。更进⼀步,我尝试了⼀些编写器:-CSVwrite-BufferedWriter-FileWriter
还检查了Stackoverflow上的其他问题…似乎⽆法使其正常⼯作。谢谢!
更新:
问题得到解答!最终代码:
public static void main(String[] args) throws IOException {
//File being read:
String fileName = "src/data/Belgium.csv";
//When 2nd parameter - ture, it gets so big, that excel can't handle FileWriter writer = new FileWriter("src/dataNew/BelgiumNew5.csv", true);
String[] nextLine;
try (CSVReader reader = new CSVReader(new FileReader(fileName), ',', '"', 1)) { while ((nextLine = adNext()) != null) {
for (String line : nextLine) {
line = placeAll("T", " ");
line = placeAll("Z", "");
line = placeAll("an", "");
line = placeAll("Plantname:", "");
//Escaping curly braces is a must!
line = placeAll("\\{", "");
line = placeAll("\\}", "");
replaceall()writer.append(line);
writer.append(System.lineSeparator());
System.out.println(line);
}
}System.out.println("Successfully written");
}catch(Exception e){
e.printStackTrace();
}finally {
if (writer != null){
writer.flush();
writer.close();
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论