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

Java 我的IntelliJ似乎找不到我的csv文件?,java,csv,bufferedreader,Java,Csv,Bufferedreader,因此,我制作了一个类来跟踪我导入的数据: 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() {

因此,我制作了一个类来跟踪我导入的数据:

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;
}
package.com公司;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.ArrayList;
公共类导入数据{
公共导入数据(){
}
公共静态ArrayList readData()引发IOException{
String file=“Users/mathiaspoulsen/Desktop/SP3MarioPizza/pizzas.csv”;
ArrayList内容=新建ArrayList();
try(BufferedReader br=new BufferedReader(new FileReader(file))){
String line=br.readLine();
而((line=br.readLine())!=null){
line=br.readLine();
字符串[]lineArr=line.split(“,”);
Pizza Pizza=new Pizza(Integer.parseInt(lineArr[0]),lineArr[1],Double.parseDouble(lineArr[2]);
添加(比萨饼);
}
}catch(filenotfounde异常){
//一些错误记录
}
返回内容;
}
然后,我尝试在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());
    }
}
package.com公司;
导入java.io.IOException;
导入java.nio.file.Path;
导入java.nio.file.path;
导入java.util.ArrayList;
公共班机{
公共静态void main(字符串[]args)引发IOException{
/*int i=0;
字符串fileName=“pizzas.csv”;
Path pathToFile=Path.get(文件名);
System.out.println(pathToFile.toabsolutionPath());
*/
//ArrayList pizzas=ImportData.readData();
System.out.println(ImportData.readData());
}
}
该程序的输出为:[]

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

比萨饼编号(整数)、比萨饼名称(字符串)、价格(双倍)


1,Margarita,69.00

您多次阅读该行,这很可能是导致您出现问题的原因。只需阅读该行一次,并在解析之前检查while语句中的该行是否为空。此外,最好检查以确保解析成功

导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.ArrayList;
公共类导入数据{
公共导入数据(){
}
公共静态ArrayList readData()引发IOException{
字符串文件=“/Users/your/path/pizza.csv”;
ArrayList内容=新建ArrayList();
try(BufferedReader br=new BufferedReader(new FileReader(file))){
弦线;
而((line=br.readLine())!=null){
字符串[]lineArr=line.split(“,”);
添加(新批萨(Integer.parseInt(lineArr[0]),lineArr[1],Double.parseDouble(lineArr[2]));
}
} 
catch(filenotfounde异常){
系统输出打印ln(e);
} 
返回内容;
}
}

我假设您希望将
“/Users/
作为您的文件路径也是
//在您的代码中逐字记录
错误吗?您应该在修复文件路径后实际填写该项…
line=br.readLine()
只需要在循环中调用一次,除非您想跳过每隔一行replace
//使用
e.printStackTrace()记录一些错误;
这样您就可以真正看到哪里出了问题。另外,正如一位板球运动员所提到的,您的文件路径看起来对您想要的内容无效。为了避免问题,请指定如下完整路径:
“C:/Users/mathiapoulsen/Desktop/SP3MarioPizza/pizzas.csv”
谢谢您的回答!出现了两个问题。1.字符串文件=”Users/mathiaspoulsen/Desktop/SP3MarioPizza/pizzas.csv“应该是字符串文件=“/Users/mathiaspoulsen/Desktop/SP3MarioPizza/pizzas.csv”;2.String-line=String-line=br.readLine();应该是String-line=“”;还更改了我的FileNotFoundException eThanks以获取答案!出现了两个问题。1.String-file=”Users/mathiaspoulsen/Desktop/SP3MarioPizza/pizzas.csv“应为字符串文件=“/Users/mathiaspoulsen/Desktop/SP3MarioPizza/pizzas.csv”;2.String line=String line=br.readLine();应为String line=“”;还更改了我的文件notfounde异常