我正在寻找这个问题的答案,但没有找到。有没有人有解决此类问题的方法。我有一组文本变量,必须使用 Java 将它们写入 .CSV 文件中。我目前正在做一个使用 JavaScript 的项目,需要 Java。这是我现在拥有的一个函数,可以很好地完成工作并将文本逐行写入 .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。该部分完成后,脚本将转到文件开头并在逗号后面写入 secondary0,转到下一行并在逗号后面写入 secondary1,依此类推。你明白了。
所以现在我需要java
您可能需要考虑使用超级CSV http://supercsv.sourceforge.net写入 CSV 文件。除了处理转义嵌入的双引号和逗号之外,它还提供了一系列编写实现 http://supercsv.sourceforge.net/writers.html从数组/列表、映射甚至 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) {
}
}
}
}
Output:
first0,second0,third0
first1,second1,third1
first2,second2,third2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)