Problema com FileInputStream

Estava refazendo a parte de conexão com meu banco de dados, pois agr estou fazendo um curso sobre isso, o curso orienta a criação de um file com todas as informações do DB e dps instrui a usar a biblioteca FIleInputStream para ler essas informações e levá-la para o driveManager.
Pega as informações do arquivo

    private static Properties loadProperties(){
        try (FileInputStream fs = new FileInputStream("db_properties")){
            Properties props = new Properties();
            props.load(fs);
            return props;
        }catch(IOException e){
            throw new DbException(e.getMessage());
        }
    }

porem fica dando um erro de arquivo inexistente, sendo que o arquivo existe
SharedScreenshot
eo erro

Tente assim para ver se funciona:

URL resource = getClass().getResource("/db_properties");
		
try (FileInputStream fs = new FileInputStream(resource.getFile())) {
	Properties props = new Properties();
	props.load(fs);
}

precisa de alguma biblioteca???
ta dando erro no getclass() e Url

Seu método é estático mas o getClass() não é.
Na verdade você não precisa do URL nem do FileInputStream.
InputStream é o suficiente:

private static Properties loadProperties(){
    try (InputStream is = Object.class.getResourceAsStream("/db_properties")){
        Properties props = new Properties();
        props.load(is);
        return props;
    } catch(IOException e) {
        throw new DbException(e.getMessage());
    }
}
1 curtida

Agr aparentemente ta dando um erro no load

Posta o seu código atualizado.

Se o InputStream está null então das duas, uma:

  • Ou o caminho relativo foi passado errado;
  • Ou o arquivo não está no classpath da sua aplicação.
public class DB {

    private static Connection conn = null;

    public static Connection getConn(){
           if (conn == null) {
               try {
               Properties props = loadProperties();
               String url = props.getProperty("db_url");
               conn = DriverManager.getConnection(url, props);
               return conn;
               }catch (SQLException e){
                   throw new DbException(e.getMessage());
               }
           }
       return conn;
    }

    public static void closeConnection(){
        if(conn != null){
            try {
                conn.close();
            }catch (SQLException e){
                throw new DbException(e.getMessage());
            }
        }
    }

    private static Properties loadProperties(){
        try (InputStream is = Object.class.getResourceAsStream("/db_properties")){
            Properties props = new Properties();
            props.load(is);
            return props;
        }catch(IOException e){
            throw new DbException(e.getMessage());
        }
    }
}

SharedScreenshot

Não utilizo o Intellij, mas acredito que o seu arquivo não esteja no classpath da execução de seu programa

Ta hipoteticamente como faço para conseguir arrumar o programa??

O seu arquivo precisa estar no classpath de EXECUÇÃO da aplicação.

Veja documentação de sua IDE de como fazer isso.

Eu achei o path, só que não estou conseguindo colocar. agr to tetando descobrir como adicionar o file, só que não aparece nem as classes.

Provavelmente é na aba “Paths” e não no “Sources”