尝试读取 csv 文件时的项目 java NullPointerException

Project java NullPointerException when trying to read a csv file

提问人:Marco Aurélio Lopes Júnior 提问时间:2/2/2023 更新时间:2/2/2023 访问量:66

问:

我有一个 csv 文件,我的类使用以下代码试图读取该数据以在我的项目中使用,但是当我运行该项目时,我有一个 NullPointerException,就像 csv 文件为 null 一样,但他不是。csv 文件的路径是正确的,显然我的类中也没有任何错误,我错过了什么?

package main.java.br.com.quantumfinance.selecaoEstagio.leitor;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class LeitorDeArquivo {

    public List<String> lerArquivo() {

        try (InputStream resourceAsStream = LeitorDeArquivo.class.getResourceAsStream("/acoes.csv")) {
            // Leitura do arquivo.
            BufferedReader br = new BufferedReader(new InputStreamReader(resourceAsStream));
            // ignora a primeira linha
            br.readLine();
            List<String> cotacoes = new ArrayList<>();

            String linha;
            while ((linha = br.readLine()) != null) {
                cotacoes.add(linha);
            }
            return cotacoes;

        } catch (FileNotFoundException e) {
            System.out.println("Arquivo n�o encontrado.");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("Erro de IO.");
            e.printStackTrace();
        }
        throw new RuntimeException("Erro na leitura do arquivo, consulte o console para maiores detalhes.");
    }
}

这是我在尝试运行项目时收到的错误

Exception in thread "main" java.lang.NullPointerException
    at java.base/java.io.Reader.<init>(Reader.java:168)
    at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:76)
    at main.java.br.com.quantumfinance.selecaoEstagio.leitor.LeitorDeArquivo.lerArquivo(LeitorDeArquivo.java:17)
    at main.java.Questoes.main(Questoes.java:26)

这是项目结构

enter image description here

java csv 异常 nullpointerexception inputstream

评论

0赞 Joachim Sauer 2/2/2023
如果你想使用,那么你想读取的文件应该在(就在你的源代码所在的位置旁边)。我的意思是从技术上讲,它需要在类路径上,但我说的是如何在通常的 maven 构建中将其放在类路径上。getResourceAsStreamresources/java/
0赞 knittl 2/2/2023
这回答了你的问题吗?什么是 NullPointerException,如何修复它?
0赞 Joachim Sauer 2/2/2023
等等:我刚刚意识到你的包被叫了......不好,你的目录应该直接采用你的项目设置方式(对你的语句进行相应的更改)。然后,也应该直接在目录中(即在应该去的地方旁边)。main.java.br....brsrcpackageacoes.csvsrc/Questoes.java
0赞 Marco Aurélio Lopes Júnior 2/2/2023
我移动了文件和目录,但项目仍然没有运行
0赞 Joachim Sauer 2/3/2023
编辑问题以显示代码的当前状态。您是否移入了文件夹?acoes.csvsrc

答: 暂无答案