【发布时间】:2021-07-04 09:47:41
【问题描述】:
我有一个包含 14 列和 5 行的 csv 文件。我正在读取最后一列的内容,并对列值执行一些数学运算并将其保存在名为exposureFactor[] 的数组中。现在我必须在第一列下方写入该数组列,跳过完美完成的行。但是当我再次运行程序时,它给了我这个错误。
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:662)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at java.base/java.util.stream.ReferencePipeline$4$1.accept(ReferencePipeline.java:212)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:550)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.IntPipeline.toArray(IntPipeline.java:538)
at com.sajood.Readingcsv.appendCol.main(appendCol.java:28)
有人可以强调这个问题。这是给我的一个项目,它的截止日期是 2 天。
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import au.com.bytecode.opencsv.CSVReader;
public class appendCol {
public static void main(String[] args) throws IOException {
int sum = 0;
String[] data5;
CSVReader reader5 = new CSVReader(new FileReader("D:\\new.csv"));
String[] nextLine5;
List<String> li = new ArrayList<String>();
while (null != (nextLine5 = reader5.readNext())) {
li.add(nextLine5[nextLine5.length - 1]);
}
String[] tempe = li.toArray(new String[0]);
String[] exp = Arrays.copyOfRange(tempe, 1, tempe.length);
data5 = Arrays.toString(exp).replace("[", "").replace("]", "").replace("\"", "").replace(" ", "").split(",");
int[] weightage = Arrays.stream(data5).mapToInt(Integer::parseInt).toArray();
for (int i = 0; i < weightage.length; i++) {
sum += weightage[i];
}
int average = sum / 6;
String averageStr = String.valueOf(average);
String exposureFactor[] = { "Exposure Factor", averageStr };
FileWriter writer4 = new FileWriter("D:\\new.csv", true);
CSVReader reader3 = new CSVReader(new FileReader("D:\\new.csv"), '\t', '\'', 6);
if ((reader3.readNext()) != null) {
return;
} else {
for (int j = 0; j < exposureFactor.length; j++) {
if (j == 0) {
writer4.append("\n");
}
writer4.append(String.valueOf(exposureFactor[j]));
writer4.append("\n");
}
writer4.close();
}
}
}
【问题讨论】:
-
请编辑您的问题以包含 complete 堆栈跟踪。
-
我已经编辑了这个问题。请立即查看。
标签: java arrays eclipse csv opencsv