使用 java.io.FileOutputStream 导出 .csv
Export .csv using java.io.FileOutputStream
我正在尝试使用 java.io.FileOutputStream 将 JavaScript 生成的 CSV 文件导出到路径(例如 "C:/ExportedDocuments/")。但是,我猜我的代码中缺少或错误定义了某些内容,因为我收到一条错误消息,指出我正在尝试使用一种不存在的方法。正如评论部分所提到的,我很可能错误地将 CSV 传递给了 FileOutputStream。但我不知道,如何正确地做到这一点。
代码是 运行 作为工作流脚本。
这是我的代码:
var data = [
['Audi', 'A8'],
['VW', 'Golf R'],
['BMW', 'M3']
];
var csv = 'Brand,Model';
data.forEach(function(row) {
csv += row.join(',');
csv += "\n";
});
outputStream = new java.io.FileOutputStream("C:/ExportedDocuments/" + "textfile" + ".csv");
org.apache.commons.io.IOUtils.copy(csv, outputStream);
outputStream.close();
那是错误:
Exporting failed: java.lang.NoSuchMethodException: None of the fixed
arity signatures [(java.io.InputStream, java.io.OutputStream),
(java.io.Reader, java.io.Writer), (java.io.InputStream,
java.io.Writer), (java.io.Reader, java.io.OutputStream)] of method
org.apache.commons.io.IOUtils.copy match the argument types
[jdk.nashorn.internal.runtime.ConsString, java.io.FileOutputStream]
我必须创建一个 ByteArrayInputStream。这是有效的解决方案:
var data = [
['Audi', 'A8'],
['VW', 'Golf R'],
['BMW', 'M3']
];
var csv = 'Brand,Model';
data.forEach(function(row) {
csv += row.join(',');
csv += "\n";
});
var CSVStream = new java.io.ByteArrayInputStream(csv.getBytes("UTF-8"));
outputStreamcsv = new java.io.FileOutputStream("C:/ExportedDocuments/" + "name" + ".csv");
org.apache.commons.io.IOUtils.copy(CSVStream, outputStreamcsv);
outputStreamcsv.close();
我正在尝试使用 java.io.FileOutputStream 将 JavaScript 生成的 CSV 文件导出到路径(例如 "C:/ExportedDocuments/")。但是,我猜我的代码中缺少或错误定义了某些内容,因为我收到一条错误消息,指出我正在尝试使用一种不存在的方法。正如评论部分所提到的,我很可能错误地将 CSV 传递给了 FileOutputStream。但我不知道,如何正确地做到这一点。
代码是 运行 作为工作流脚本。
这是我的代码:
var data = [
['Audi', 'A8'],
['VW', 'Golf R'],
['BMW', 'M3']
];
var csv = 'Brand,Model';
data.forEach(function(row) {
csv += row.join(',');
csv += "\n";
});
outputStream = new java.io.FileOutputStream("C:/ExportedDocuments/" + "textfile" + ".csv");
org.apache.commons.io.IOUtils.copy(csv, outputStream);
outputStream.close();
那是错误:
Exporting failed: java.lang.NoSuchMethodException: None of the fixed arity signatures [(java.io.InputStream, java.io.OutputStream), (java.io.Reader, java.io.Writer), (java.io.InputStream, java.io.Writer), (java.io.Reader, java.io.OutputStream)] of method org.apache.commons.io.IOUtils.copy match the argument types [jdk.nashorn.internal.runtime.ConsString, java.io.FileOutputStream]
我必须创建一个 ByteArrayInputStream。这是有效的解决方案:
var data = [
['Audi', 'A8'],
['VW', 'Golf R'],
['BMW', 'M3']
];
var csv = 'Brand,Model';
data.forEach(function(row) {
csv += row.join(',');
csv += "\n";
});
var CSVStream = new java.io.ByteArrayInputStream(csv.getBytes("UTF-8"));
outputStreamcsv = new java.io.FileOutputStream("C:/ExportedDocuments/" + "name" + ".csv");
org.apache.commons.io.IOUtils.copy(CSVStream, outputStreamcsv);
outputStreamcsv.close();