read only first and last line file

Asked

Viewed 1,238 times

2

I’m taking all the lines of my file. However I can’t get first and last to save in a variable.

I have following code snippet to read 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());
    }  
  • Worked now?

  • worked for first line. ultimaline = line; // if the file has a single line. If the file has more than one line ? I forgot to comment on this. This last line is the same as the first, ie with the same texts.

2 answers

1


Look at it this way:

    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);
  • Took only the first line, last line returned null.

  • I marked it. Now it’s right.

  • It worked. Thank you!

  • ultimalinha = line; // if the file has a single line. If the file has more than one line ? I forgot to comment on this. This last line is equal to the first, ie with the same texts.

0

You can use Apache Fileutils (https://commons.apache.org/proper/commons-io/description.html) 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);
 }

Browser other questions tagged

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