gpt4 book ai didi

java - 逐列写入 CSV 文件

转载 作者:行者123 更新时间:2023-11-30 07:22:37 26 4
gpt4 key购买 nike

我一直在寻找这个问题的答案,但没有找到。有没有人有解决此类问题的方法。我有一组文本变量,我必须使用 Java 将其写入 .CSV 文件。我目前正在做一个需要 Java 的 JavaScript 项目。这是我现在拥有的一个功能,可以很好地完成工作并将文本逐行写入 .CSV。

function writeFile(filename, data)
{
try
{

//write the data

out = new java.io.BufferedWriter(new java.io.FileWriter(filename, true));
out.newLine();
out.write(data);
out.close();
out=null;
}
catch(e) //catch and report any errors
{
alert(""+e);
}
}

但现在我必须像下面的例子一样,一个接一个地写文本的一部分。

first0,second0,third0
first1,second1,third1
first2,second2,third2
.
.
.
first9,second9,third9

所以算法是这样的。该函数用逗号写入 first0,然后转到下一行写入 first1,转到下一行写入 first2 等等,直到 first9。完成该部分后,脚本转到文件开头并在逗号后面写入 second0,然后转到下一行并在逗号后面写入 second1,依此类推。你明白了。

所以现在我需要java

最佳答案

您可能要考虑使用 Super CSV写入 CSV 文件。除了处理转义嵌入的双引号和逗号外,它还提供了 writing implementations 的范围。从数组/列表、映射甚至 POJO 编写,这意味着您可以轻松地尝试您的想法。

如果您想让它变得非常简单,您可以将 CSV 文件组合成一个二维数组。这允许按列优先组装它,然后在准备就绪时将整个内容写入 CSV。

package example;

import java.io.FileWriter;
import java.io.IOException;

import org.supercsv.io.CsvListWriter;
import org.supercsv.io.ICsvListWriter;
import org.supercsv.prefs.CsvPreference;

public class ColumnFirst {

public static void main(String[] args) {

// you can assemble this 2D array however you want
final String[][] csvMatrix = new String[3][3];
csvMatrix[0][0] = "first0";
csvMatrix[0][1] = "second0";
csvMatrix[0][2] = "third0";
csvMatrix[1][0] = "first1";
csvMatrix[1][1] = "second1";
csvMatrix[1][2] = "third1";
csvMatrix[2][0] = "first2";
csvMatrix[2][1] = "second2";
csvMatrix[2][2] = "third2";

writeCsv(csvMatrix);

}

private static void writeCsv(String[][] csvMatrix) {

ICsvListWriter csvWriter = null;
try {
csvWriter = new CsvListWriter(new FileWriter("out.csv"),
CsvPreference.STANDARD_PREFERENCE);

for (int i = 0; i < csvMatrix.length; i++) {
csvWriter.write(csvMatrix[i]);
}

} catch (IOException e) {
e.printStackTrace(); // TODO handle exception properly
} finally {
try {
csvWriter.close();
} catch (IOException e) {
}
}

}

}

输出:

first0,second0,third0
first1,second1,third1
first2,second2,third2

关于java - 逐列写入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557052/

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