How to read a certain line of multiple files in Java

Asked

Viewed 148 times

-1

In the Stock folder, I have several.txt files. I would like to read each row of these files. The question is: how?

NOTE: if I could save the name of each file, I might be able to solve the problem. But I can’t use getName();

I tried to develop, but it didn’t work.

String path = "../Aplicação Bodega/src/br/com/Estoque/";
public Produto[] produtosEmFalta() {

        Produto produto[] = null;
        Produto produtoaux = null;
        int a = 0;

        File arquivo[];
        File diretorio = new File(path);
        arquivo = diretorio.listFiles();


        for(int i = 0; i < diretorio.length(); i++){
           try{
                List linhas = new ArrayList<>();
                Scanner leitor = new Scanner(arquivo[i]);

                //System.out.println(arquivo[0]);


                while(leitor.hasNextLine()){
                    linhas.add(leitor.nextLine()); 
                }

                produtoaux = buscar((String)linhas.get(i));


                if(produtoaux.getQuantidade() == 0){
                    System.out.println("Código: " + produtoaux.getCodigo());
                    //produto[a] = produtoaux;
                    a++;
                }

           } catch(FileNotFoundException | PNEException ex) { }
        }

        return produto;
    }

1 answer

1

Your for is wrong. You are using 'directory.length()' in the loop condition

for(int i = 0; i < diretorio.length(); i++){

but should be considering the value 'file.length', after all, it is in this array that are the files of the directory referenced in the variable 'directory'

 for(int i = 0; i < arquivo.length; i++){

with this you can access the name of each file within the loop:

arquivo[i].getName()

Browser other questions tagged

You are not signed in. Login or sign up in order to post.