У меня есть пакет конфигурации, где у меня есть класс 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»), если он работает, но он не работает таким образом.
Здесь я передаю фото, чтобы увидеть, что они оба в одном месте.
Спасибо!
Ты можешь использовать 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;
}
То, в чем ты нуждаешься в этом случае, так это загрузочное устройство классов, которое позволяет одной 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;
}