2015-11-06 81 views
1

我读过类似的主题,但没有找到任何使用这种阅读方法,所以我无法修复它。在阅读Java中的csv时删除第一行

如何在使用以下方法阅读时跳过第一行? BTW,我有同第二读取麻烦,用行之后:

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”行但它不适用于我

+1

问题是在“File file = new File(”attendance.csv“)后面的部分; – Win

回答

1

请尝试替换以下行:

for (String line : lines) { 
    String[] array = line.split(","); 
... 

对于这些:

for (int i=1; i<lines.size(); i++) { 
    String[] array = lines.get(i).split(","); 
... 

这样,我们可以跳过读取第一行(我们初始化i=1,而不是 “正常” i=0)。

+1

这很好用,我在这个问题上遇到了很多问题,非常感谢! – Win

+0

@Win非常感谢:-) –