在 Java 中读取 csv 时删除第一行
deleting first line when reading csv in Java
我读过类似的主题,但没有找到任何使用这种阅读方法的主题,所以我无法修复它。
使用以下方法阅读时如何跳过第一行?
顺便说一句,我在第二次阅读时遇到了麻烦,在行之后:
File file = new File("attendance.csv");
代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.List;
import java.util.Scanner;
public class ClassAttendance {
public static void main(String[] args) throws Exception {
int rowCount = 0;
int colCount = 0;
Scanner rc = new Scanner(new File("attendance.csv"));
while (rc.hasNextLine()) {
rowCount++;
rc.nextLine();
}
rc.close();
File file = new File("attendance.csv");
List<String> lines = Files.readAllLines(file.toPath(),
StandardCharsets.UTF_8);
double sum = 0;
double avg;
for(int n=1; n<3; ++n){
for (String line : lines) {
String[] array = line.split(",");
System.out.println(array[n]);
sum = sum + Double.parseDouble(array[n]);
}
avg = sum/rowCount;
System.out.print("Week ");
System.out.print(n);
System.out.print("Average = ");
System.out.print(avg);
System.out.println();
}
}
}
到目前为止,我尝试放置:
List<String> headerLine = Files.readLine(file.toPath());
在 "readAllLines" 行上方,但它对我不起作用
请尝试替换以下行:
for (String line : lines) {
String[] array = line.split(",");
...
致这些:
for (int i=1; i<lines.size(); i++) {
String[] array = lines.get(i).split(",");
...
通过这种方式我们可以跳过读取第一行(因为我们初始化 i=1
而不是 "normal" i=0
)。
我读过类似的主题,但没有找到任何使用这种阅读方法的主题,所以我无法修复它。
使用以下方法阅读时如何跳过第一行? 顺便说一句,我在第二次阅读时遇到了麻烦,在行之后:
File file = new File("attendance.csv");
代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.List;
import java.util.Scanner;
public class ClassAttendance {
public static void main(String[] args) throws Exception {
int rowCount = 0;
int colCount = 0;
Scanner rc = new Scanner(new File("attendance.csv"));
while (rc.hasNextLine()) {
rowCount++;
rc.nextLine();
}
rc.close();
File file = new File("attendance.csv");
List<String> lines = Files.readAllLines(file.toPath(),
StandardCharsets.UTF_8);
double sum = 0;
double avg;
for(int n=1; n<3; ++n){
for (String line : lines) {
String[] array = line.split(",");
System.out.println(array[n]);
sum = sum + Double.parseDouble(array[n]);
}
avg = sum/rowCount;
System.out.print("Week ");
System.out.print(n);
System.out.print("Average = ");
System.out.print(avg);
System.out.println();
}
}
}
到目前为止,我尝试放置:
List<String> headerLine = Files.readLine(file.toPath());
在 "readAllLines" 行上方,但它对我不起作用
请尝试替换以下行:
for (String line : lines) {
String[] array = line.split(",");
...
致这些:
for (int i=1; i<lines.size(); i++) {
String[] array = lines.get(i).split(",");
...
通过这种方式我们可以跳过读取第一行(因为我们初始化 i=1
而不是 "normal" i=0
)。