I'm trying to get the names of the files that exist in a directory, using InputStream, but it always returns empty: []
Can anyone help me with the code.
The Project have the structure:
The code that i made:
// Gets the info.
String path = "/imagens/";
InputStream is = getClass().getResourceAsStream(path);
InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr);
br.lines()
.map(l -> path + "/" + l)
.collect(toCollection(FXCollections::observableArrayList));
// Shows the info.
URL resource = getClass().getResource("/imagens/");
try(InputStream is2 = resource.openStream())
{
System.out.println(observableArrayList());
}
catch (IOException ex)
{
Logger.getLogger(JavaFX_Paths.class.getName()).log(Level.SEVERE, null, ex);
}
New code:
HBox root = new HBox();
Button btn = null;
ArrayList<String> items = new ArrayList<String>();
String textLine;
try
{
BufferedReader br = new BufferedReader(new FileReader("src/imagens/lista_icones.txt"));
while ((textLine = br.readLine()) != null)
items.add(textLine);
br.close();
}
catch (IOException ex)
{
Logger.getLogger(JavaFX_Paths.class.getName()).log(Level.SEVERE, null, ex);
}
for (int i = 0; i < items.size(); i++)
{
Image img = new Image(getClass().getResourceAsStream("/imagens/" + items.get(i) + ".png"));
btn = new Button();
btn.setId(items.get(i));
btn.setGraphic(new ImageView(img));
root.getChildren().addAll(btn);
}
FINAL CODE (and finally working :)))) I used InputStream, InputStreamReader and BufferedReader...nothing to do with File objects or FileReaders.
HBox root = new HBox();
ArrayList<String> items = new ArrayList<String>();
String textLine;
Button btn = null;
try
{
InputStream inputStream = JavaFX_Paths.class.getResourceAsStream("/imagens/lista_imagens.txt");
InputStreamReader inputReader = new InputStreamReader(inputStream);
BufferedReader bufferReader = new BufferedReader(inputReader);
while ((textLine = bufferReader.readLine()) != null)
items.add(textLine);
bufferReader.close();
inputReader.close();
inputStream.close();
}
catch (IOException ex)
{
Logger.getLogger(JavaFX_Paths.class.getName()).log(Level.SEVERE, null, ex);
}
for (int i = 0; i < items.size(); i++)
{
Image img = new Image(getClass().getResourceAsStream("/imagens/" + items.get(i) + ".png"));
btn = new Button();
btn.setId(items.get(i));
btn.setGraphic(new ImageView(img));
root.getChildren().addAll(btn);
}