Como utilizar uma variável para vários diretórios?

Gostaria de implementar uma nova função que considero importante, útil para esse programa que ler vários arquivos TXT e faz a cópia das informações para um arquivo único saltando linha

Leia em Código que cópia as informações de vários arquivos TXT para um so arquivo em java


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class Teste6 {

    public static void main(String[] args) {
        try {
            Teste6 programa = new Teste6();
            programa.executar();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    
    
    private List<String> linhasCopiadas;

    private void executar() throws IOException {
String Diretorio = “://”; // C://, D://, F::// ... n diretorios

try {
Diretorio urlDiretorio  = new Diretorio (diretorio );
InputStreamReader stream = new InputStreamReader(urlDiretorio, File Diretorio  = new File("Diretorio "); ); // adicionar pasta com o nome Arq

}
        File arquivoDestino = new File("Diretorio", new.txt);
        PrintWriter destino = new PrintWriter(arquivoDestino);
        linhasCopiadas = new ArrayList<>();
        for (File arquivo : diretorio.listFiles()) {
            BufferedReader origem = new BufferedReader(new FileReader(arquivo));
            copiar(origem, destino);
            destino.println();
            origem.close();
        }
        destino.flush();
        destino.close();
    }

    private void copiar(BufferedReader origem, PrintWriter destino) throws IOException {
        String linha = null;
        while ((linha = origem.readLine()) != null) {
            if (!linhasCopiadas.contains(linha)) { // se a linha ainda não foi copiada pro arquivo de destino
                destino.println(linha); // copia a linha no arquivo de destino
                linhasCopiadas.add(linha); // joga a linha na lista de linhas copiadas
            }
        }
        destino.println(); // pular linha no arquivo de destino
    }
}

Programa considere a String Diretorio = “://”; para vários diretórios e inclua sempre um novo arquivo também pelo código


String Diretorio = “://”; // C://, D://, F::// ... n diretorios

try {
Diretorio urlDiretorio  = new Diretorio (diretorio );
InputStreamReader stream = new InputStreamReader(urlDiretorio, File Diretorio  = new File("Diretorio "); ); // adicionar pasta com o nome Arq

}
        File arquivoDestino = new File("Diretorio", new.txt);

É possível?

Utilize um array:

String[] diretorios = new String[] {"://", "C://", "D://", "F://");

for(String dir : diretorios) {
    // Código de processamento
}
1 curtida

Como poderia utilizar :// para nos diretórios? Algo:

String[] diretorios = new String[] {"://"); 
  
/* 
  tudo que vir antes será diretório como: "C", "D", "F" ... 
  e assim sucessivamente caso comece  "C://", "D://", "F://" ... 
*/

for(String dir : diretorios) 
{

}

Utilizar pra que? Pela sua dúvida, o que entendi era que vc queria manter um array de diretorios, assim:

String[] diretorios = new String[] {"C://", "D://", "F://"};

Agora, não entendi para o que vc quer isso.

1 curtida

Pode ser que haja diretórios que são letras e números. Exemplo: 111:// ou a1a3:// ou aaa22:// Nesse sentido, estou buscando formas de criar algo genérico para solucionar esse problema. Exemplo: :// use essa entrada para diretórios com letras maiúsculas, minúsculas e com números.