Salvando resultado em arquivo txt

isso , dois ou mais arquivos ou apenas 1 mesmo . Aqui eu testei e não conseguir obter todo o conteúdo

1 curtida

Bom mano, consegui, desculpa a demora, estava testando essa API que vc utiliza, e ela é realmente boa, eu tinha feito de duas formas, uma da forma que eu conhecia, mas ficou meio que grande o código, e a outra eu olhei a API e ficou bem pequeno o código e fácil leitura, gostei dessa API:

public static void main(String[] args){
        //arquivos que vamos ler
        Path arquivo1 = Paths.get("arquivo1.txt");
        Path arquivo2 = Paths.get("arquivo2.txt");
        //arquivo que vamos gravar
        Path arquivo_final = Paths.get("arquivo_pronto.txt");
        //faço a leitura dos arquivo separadamente
        List<String> dados_do_arquivo1 = Files.readAllLines(arquivo1);
        List<String> dados_do_arquivo2 = Files.readAllLines(arquivo2);
        
        /*Aqui é onde eu junto os dados dois arquivos, em outras palavras
        eu to pegandos os dados do SEGUNDO arquivo e ADICIONANDO no PRIMEIRO
        arquivo.
        */
        dados_do_arquivo1.addAll(dados_do_arquivo2);
        /*após isso, eu passo os dados do arquivo 1 que já está junto com os dados
        do arquivo 2 e mando escrever e pronto.
        */
        Files.write(arquivo_final, dados_do_arquivo1, StandardOpenOption.WRITE);

}

Esses dois arquivo cada um tinha 11 MB cada, após testar o arquivo final ficou 23 MB deve ser para a forma que ele escreve os caracteres, mas em outras palavras funciona

Testei aqui mano realmente funciona ! Sair certinho , mas no caso como eu faria se a leitura fosse usando um processo externo ? Por que eu estava usando o cmd justamente com esse proposito . Já que o cmd é capaz de ler múltiplos arquivos.

Bom mano, ai no caso vc teria q montar uma lógica legal para trabalhar com esses multiplos arquivos, eu vi q essa API tem uns método que retorna o que tem na pasta, eu testei o seguinte:

Stream<Path> list = Files.list(Paths.get(""));
list.filter(path -> path.toFile().isFile()).forEach(encontrados -> System.out.println(encontrados));

Bom, peguei a lista de tudo que tem na pasta do projeto inclusive pastas, fiz um filtro(filter) para encontrar somente arquivos dentro dessa lista e após isso fiz um forEach para mostrar os arquivos encontrados.

Vc pode dar uma olhada em Colletors, ai o código sabendo os nomes dos arquivos e ai é faz um laço para ler esses arquivos.
Ex esse colletors me retorna os dados, que no caso é os nomes dos arquivos em uma List

Stream<Path> list = Files.list(Paths.get(""));        
        List<Path> encontrados = list.filter(path -> path.toFile().isFile()).collect(Collectors.toList());
        encontrados.forEach(nome_dos_arquivos -> {
            System.out.println(nome_dos_arquivos);
        });

eu vou dá uma olhada