Проблема чтения TXT-файла с Java

У меня есть пакет конфигурации, где у меня есть класс Config.java и файл config.txt, который я хочу прочитать.

Config.java

public class Config {


public String obtenerConfig(){

    String texto = "";

    try {
        BufferedReader bf = new BufferedReader(new FileReader("config.txt"));
        String temp = "";
        String bfRead;
        while((bfRead = bf.readLine()) != null)
            temp = temp + bfRead;

        texto = temp;
    } catch (Exception e) {
        System.out.println("Error: " + e.getMessage());
    }
    return texto;
}

Но когда я запускаю его, он говорит мне, что не может найти файл.

Если я добавлю полный путь («C: \ Documents \ blabla \ config.txt») вместо («config.txt»), если он работает, но он не работает таким образом.

Здесь я передаю фото, чтобы увидеть, что они оба в одном месте.

introducir la descripción de la imagen aquí

Спасибо!

-1
задан 07.12.2016, 00:59
2 ответа

Ты можешь использовать getResourceAsStream () и в тебе cГіdigo quedarГ - в следующей формы:

public String obtenerConfig(){

    String texto = "";
    String temp = "";

    try {

        InputStream in = this.getClass().getResourceAsStream("config.txt");
        Reader reader = new InputStreamReader(in, "utf-8");         
        BufferedReader bf = new BufferedReader(reader);


        String bfRead;
        while((bfRead = bf.readLine()) != null)
            temp = temp + bfRead;

        texto = temp;
    } catch (Exception e) {
        System.out.println("Error: " + e.getMessage());
    }
    return texto;
}   
1
ответ дан 24.11.2019, 12:14

То, в чем ты нуждаешься в этом случае, так это загрузочное устройство классов, которое позволяет одной aplicaciГіn соглашаться на хранилища классов и доступных ресурсов. Но не любое загрузочное устройство классов, потому что есть многие в среде ejecuciГіn, а том, что cargГі класс Config.

❍ Если estГЎs используя Java 5 / 6, ты можешь делать следующее:

public String obtenerConfig() {
    StringBuilder sb = new StringBuilder();
    try {
        InputStream inputStream = Config.class.getResourceAsStream("config.txt");
        InputStreamReader streamReader = new InputStreamReader(inputStream, "UTF-8");
        BufferedReader reader = new BufferedReader(streamReader);
        for (String line; (line = reader.readLine()) != null;) {
            sb.append(line);
            sb.append('\n');
        }
        reader.close();
        streamReader.close();
        inputStream.close();
    } catch (Exception e) {
        System.out.println("Error: " + e.getMessage());
    }
    return sb.toString();
}

❍ Если estГЎs используя Java 7 / 8, ты можешь делать следующее:

public String obtenerConfig() {
    String content = null;
    try {
        Path path = Paths.get(getClass().getResource("config.txt").toURI());
        byte[] bytes = Files.readAllBytes(path);
        content = new String(bytes, StandardCharsets.UTF_8);
    } catch (URISyntaxException | IOException e) {
        System.out.println("Error: " + e.getMessage());
    }
    return content;
}
1
ответ дан 24.11.2019, 12:14