read only first and last line file

2

I'm picking up all the lines from my file. However I can not get first and last save in a variable.

I have the following code snippet to read from the file:

ler = new Scanner("C:\Users\Douglas Williamn\Documents\2244.txt");
    String romaneioTxt = ler.nextLine();

    System.out.printf("\nConteúdo do arquivo texto:\n");

    try {
        BufferedReader lerArquivo = new BufferedReader(
                new InputStreamReader(new FileInputStream(romaneioTxt), "UTF-8"));

        linha = lerArquivo.readLine(); // lê a primeira linha

        while (linha != null) {
            if (linha.split("/n") != null) {

                array = linha.split("@#");
                resultadoCTRC = array[2];
                resultadoVolume = array[5];
                resultadoDestinatario = array[6];
                resultadoPPE = array[7];

                // Quando vou buscar as informações na posição 17  e 19
                // Dar erro por que primeira e segunda linha tem apenas 7 posições
                resultadoCidade = array[17];
                resultadoTelefone = array[19];

                System.out.println("CTRC: " + resultadoCTRC);
                System.out.println("Volume: " + resultadoVolume);
                System.out.println("Destinatario: " + resultadoDestinatario);
                System.out.println("PPE: " + resultadoPPE);
                System.out.println("Cidade: " + resultadoCidade);
                System.out.println("Telefone: " + resultadoTelefone);
                System.out.println("\n");

                linha = lerArquivo.readLine(); // lê da segunda até a última linha

                System.out.println(linha);
            }
        }

        lerArquivo.close();
    } catch (IOException e) {
        System.err.printf("Erro na abertura do arquivo: %s.\n", e.getMessage());
    }  
    
asked by anonymous 19.12.2017 / 19:41

2 answers

1

Look like this:

    linha = lerArquivo.readLine(); // lê a primeira linha
    String primeiralinha = new.String( linha.getBytes());
    String ultimalinha = new.String(""); // se o arquivo tiver uma unica linha   

    while (linha != null) {

            linha = lerArquivo.readLine(); // lê uma linha qualquer
            if ( linha != null ) {
               ultimalinha = new.String( linha.getBytes());
               System.out.println(linha);
           }
        } 

      System.out.println(primeiralinha);
      System.out.println(ultimalinha);
    
19.12.2017 / 19:50
0

You can use Apache FileUtils ( link ) that makes it much easier.

File file = new File("C:\Users\Douglas Williamn\Documents\2244.txt");
LineIterator it = FileUtils.lineIterator(file, "UTF-8");
 try {
   while (it.hasNext()) {
     String line = it.nextLine();
     /// do something with line
   }
 } finally {
   LineIterator.closeQuietly(iterator);
 }
    
21.12.2017 / 05:34