Existem as seguintes maneiras de ler um arquivo linha por linha.
concatenar string java
- Classe BufferedReader
- Classe de scanner
Usando a classe BufferedReader
Usar a classe Java BufferedRedaer é a maneira mais comum e simples de ler um arquivo linha por linha em Java. Isso pertence a java.io pacote. A classe Java BufferedReader fornece o método readLine() para ler um arquivo linha por linha. A assinatura do método é:
public String readLine() throws IOException
O método lê uma linha de texto. Ele retorna uma string contendo o conteúdo da linha. A linha deve ser finalizada por qualquer avanço de linha (' ') ou retorno de carro (' ').
Exemplo de leitura de um arquivo linha por linha usando a classe BufferedReader
No exemplo a seguir, Demo.txt é lido pela classe FileReader. O método readLine() da classe BufferedReader lê o arquivo linha por linha e cada linha é anexada a StringBuffer, seguida por um avanço de linha. O conteúdo do StringBuffer é então enviado para o console.
import java.io.*; public class ReadLineByLineExample1 { public static void main(String args[]) { try { File file=new File('Demo.txt'); //creates a new file instance FileReader fr=new FileReader(file); //reads the file BufferedReader br=new BufferedReader(fr); //creates a buffering character input stream StringBuffer sb=new StringBuffer(); //constructs a string buffer with no characters String line; while((line=br.readLine())!=null) { sb.append(line); //appends line to string buffer sb.append(' '); //line feed } fr.close(); //closes the stream and release the resources System.out.println('Contents of File: '); System.out.println(sb.toString()); //returns a string that textually represents the object } catch(IOException e) { e.printStackTrace(); } } }
Saída:
Usando a classe Scanner
Java Scanner A classe fornece mais métodos utilitários em comparação com a classe BufferedReader. A classe Java Scanner fornece o método nextLine() para facilitar linha por linha o conteúdo do arquivo. Os métodos nextLine() retornam a mesma String do método readLine(). A classe Scanner também pode ler um arquivo no formato InputStream.
Exemplo de leitura de um arquivo linha por linha usando a classe Scanner
import java.io.*; import java.util.Scanner; public class ReadLineByLineExample2 { public static void main(String args[]) { try { //the file to be opened for reading FileInputStream fis=new FileInputStream('Demo.txt'); Scanner sc=new Scanner(fis); //file to be scanned //returns true if there is another line to read while(sc.hasNextLine()) { System.out.println(sc.nextLine()); //returns the line that was skipped } sc.close(); //closes the scanner } catch(IOException e) { e.printStackTrace(); } } }
Saída: