How do I get a file.yml inside a folder? JAVA

0

I want to know how to get a list of files for example:

  • MainFolder >
    • Arenas >
    • Arena1.yml
    • Arena2.yml

And be able to get the ones that Arena1.yml contains.

My code (It does not work.):

    private static FileConfiguration arenas;

private void loadArena () {

    File folder = new File(getDataFolder()+"/arenas");
    File[] listOfFiles = folder.listFiles();
    for(int i = 0; i < listOfFiles.length; i++){
        if(listOfFiles[i].isFile()){
            if(listOfFiles[i] != null){
                String arena = listOfFiles[i].getName();
                    new Arena(arena, arenas.getInt("maxplayers"),
                            arenas.getInt("minplayers"),
                            arenas.getString("sign").equals("NOEXIST") ? null : (Sign)unserializeLocation(arenas.getString("sign"))
                                    .getWorld().getBlockAt(unserializeLocation(arenas.getString("sign"))).getState(),
                            unserializeLocation(arenas.getString("mainLobby")),
                            unserializeLocation(arenas.getString("lobby")),
                            listStrToLocs(arenas.getStringList("spawns"))
                    );
            }
        }
    }
}
    
asked by MrEmii 25.11.2017 в 16:14
source

1 answer

0

I suggest this code to load the file and once you have it in memory you can perform all the necessary searches

public void cargarArchivo(String direccion){
    lineas = new ArrayList<>();

    try {
        Path ruta = Paths.get(direccion);

        Stream<String> flujoFormateado = Files.lines(ruta, Charset.forName("UTF-8")); // cargando el archivo plano
        flujoFormateado.forEach(lineas::add); // almacenando todos los elementos para su analisis

        System.out.println("lineas guardadas: "+lineas.size());
    } catch (IOException ex) {
        Logger.getLogger(Archivo.class.getName()).log(Level.SEVERE, null, ex);
    }
}
    
answered by 27.11.2017 в 22:43