似乎我的 IntelliJ 找不到我的 csv 文件?

It seems my IntelliJ cannot find my csv file?

所以我做了一个 class 来跟踪我导入的数据:

package com.company;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class ImportData {
    public ImportData() {
    }
    public static ArrayList<Pizza> readData() throws IOException{
    String file = "Users/mathiaspoulsen/Desktop/SP3MarioPizza/pizzas.csv";
    ArrayList <Pizza> content = new ArrayList<>();
    try(BufferedReader br = new BufferedReader(new FileReader(file))) {
        String line = br.readLine();
        while ((line = br.readLine()) != null) {
            line = br.readLine();
            String [] lineArr = line.split(",");
            Pizza pizza = new Pizza (Integer.parseInt(lineArr[0]),lineArr[1],Double.parseDouble(lineArr[2]));
            content.add(pizza);
        }
    } catch (FileNotFoundException e) {
        //Some error logging
    }
    return content;
}

然后我尝试在 main 方法中 运行 它以查看它是否正确加载 csv 文件。像这样:

package com.company;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
public class Main {
    public static void main(String[] args) throws IOException {
    /*    int i = 0;
        String fileName = "pizzas.csv";
        Path pathToFile = Paths.get(fileName);
        System.out.println(pathToFile.toAbsolutePath());
*/
       // ArrayList<Pizza> pizzas = ImportData.readData();
        System.out.println(ImportData.readData());
    }
}

这个程序的输出是:[]

为什么不显示比萨饼? csv 文件中的比萨饼结构如下:

PizzaNumber(int),PizzaName(String), price(double)

1,玛格丽塔,69.00

您多次阅读该行很可能导致了您的问题,只需阅读该行一次并检查以确保它在解析之前在 while 语句中不为空。另外,最好检查一下,确保解析成功。

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class ImportData {
  public ImportData() {
  }

  public static ArrayList<Pizza> readData() throws IOException {
    String file = "/Users/your/path/pizza.csv";
    ArrayList<Pizza> content = new ArrayList<>();
    try (BufferedReader br = new BufferedReader(new FileReader(file))) {
      String line;
      while ((line = br.readLine()) != null) {
        String[] lineArr = line.split(",");
        content.add(new Pizza(Integer.parseInt(lineArr[0]), lineArr[1], Double.parseDouble(lineArr[2])));
      }
    } 
    catch (FileNotFoundException e) {
      System.out.println(e);
    } 
    return content;
  }
}