Abrir arquivo em Java

Boa tarde, estou começando a programar agora e preciso da ajuda de vocês.
Preciso abrir um arquivo e contar o número de linhas desse arquivo.
O arquivo tem o formato text e eu estou utilizando o eclipse.

Por favor, me ajudem!
Obrigada

http://lmgtfy.com.br/?q=java+abrir+arquivos+texto

E contar as linhas? Como que eu faço?

iisalynch,

Boa tarde.

Tire uma dúvida.

O arquivo já está criado? Ou você quer construir o arquivo, escrever, depois ler, e por fim contar as linhas escritas?

Ele já está criado, só preciso abrir ele pelo eclipse e contar as linhas!

Por favor, ao postar tópicos, não os marque com informações óbvias como [AJUDA], [DÚVIDA], [SOCORRO] ou [URGENTE].

Quanto ao seu problema, acho que o código abaixo resolve:

public int contarLinhas(File file) { try (Scanner in = new Scanner(file)) { int cont = 0; while (in.hasNextLines()) { in.nextLine(); cont++; } } catch (Exception e) { throw new RuntimeException("Problemas ao ler arquivo.", e); } return cont; }

ViniGodoy, uma duvida eu vou ter que fazer essa contagem em vários arquivos, esse codigo servira para todos?

Sim.

Ok, muito obrigada pela ajuda.

Pessoal, coloquei o cógido que o ViniGodoy passou e apresentou alguns erros, se vocês puderem me ajudar.

public int contarLinhas(File file){
	try (Scanner in = new Scanner(file); {  ----> AQUI O ERRO EH O SEGUINTE: SYNTAX ERROR ON TOKEN "(", { EXPECTED
		int cont = 0;
		while (in.hasNextLine()) {
			in.nextLine();
			cont++;	
		}
	} catch (Exception e) { ----> AQUI O ERRO EH O SEGUINTO: SYNTAX ERROR, INSERT "}" TO COMPLETE BLOCK / LINE BREAKPOINT:ABRIRARQUIVO [LINE:24] CONTAR LINHAS (FILE)
		throw new RuntimeException("Problemas ao ler arquivo." ,e);
	}
	
	return cont;

}

substitua

try (Scanner in = new Scanner(file); { 

por

try (Scanner in = new Scanner(file)) { 

[quote=Bruno.Souza.PW]
substitua

try (Scanner in = new Scanner(file); { 

por

try (Scanner in = new Scanner(file)) { [/quote]

continua errado, mas obrigada pela ajuda.

try { (Scanner in = new Scanner(file)) ...

tente assim…

    public int contarLinhas(File file) {
        int cont = 0;
        try {
        	Scanner in = new Scanner(file);
                while (in.hasNextLine()) {
                        in.nextLine();
                        cont++;
                }
        } catch (Exception e) {
            throw new RuntimeException("Problemas ao ler arquivo.", e);
        }
        return cont;
    }

O código acima funciona.

Observação: O mais importante é entender o que está acontecendo.

Dica: Leia a API utilizada.

Jonas

Seguinte, vou colar tudo o que fiz até agora. Ficou quase tudo certo…

import java.io.File;
import java.until.Scanner;

public class AbrirArquivo {

public void main(String args[]){
	File arquivo = new File("/Users/crnobrega/Documents/JAVA/t.tailtarget.com.log-2012-07-07.a");
	
	int qtd = contarLinhas(arquivo);
	
	System.out.println(qtd);
}

public int contarLinhas(File file) {  
	int cont = 0;  
    try {  
        Scanner in = new Scanner(file);  
            while (in.hasNextLine()) {  
                    in.nextLine();  
                    cont++;  
            }  
    } catch (Exception e) {  
        throw new RuntimeException("Problemas ao ler arquivo.", e);  
    }  
    
    return cont;  
}

}

No código - import java.until.Scanner; aparece o X do lado e quando eu clico aparece o seguinte:

  • create class “Scanner” in package ‘java until’
  • create interface “Scanner” in package ‘java until’
  • create annotation “Scanner” in package ‘java until’
  • create enum “Scanner” in package ‘java until’
  • remove unused import
  • organize imports
  • fix project setup

No código - Scanner in = new Scanner(file); aparece o X do lado e quando eu clico aparece o seguinte:

  • create class “Scanner”;
  • change to “Signer” (java. security);
  • change to ‘java.until.scanner’ (java until)

[quote]No código - import java.until.Scanner; aparece o X do lado e quando eu clico aparece o seguinte:

  • create class “Scanner” in package ‘java until’
  • create interface “Scanner” in package ‘java until’
  • create annotation “Scanner” in package ‘java until’
  • create enum “Scanner” in package ‘java until’
  • remove unused import
  • organize imports
  • fix project setup [/quote]

A classe Scanner pertence ao pacote java.util.*; Então, por favor, acerte o seu import para import java.util.Scanner;

Se estiver usando o Eclipse, posicione o cursor sobre a classe e pressione Ctrl+1, abrirá umas opções cujo a primeira linha contém o nome do pacote da classe, basta selecionar sobre e pressionar enter.

Troque a linha:

import java.until.Scanner; 

Por:

import java.util.Scanner;

Além disso, que versão de Java você está utilizando?
Se for a 7, o código que postei funciona.
Se não inferior a versão 7, então aquele try deveria ser declarado de forma diferente:

public int contarLinhas(File file) { Scanner in = null; try { in = new Scanner(file); int cont = 0; while (in.hasNextLines()) { in.nextLine(); cont++; } } catch (Exception e) { throw new RuntimeException("Problemas ao ler arquivo.", e); } finally { if (in != null) { try { in.close(); } catch (IOException e) {} } } return cont; }

Pessoal muito obrigada pela ajuda.
Troquei os codigos como o ViniGodoy disse, ficou aparentemente tudo certo, não apareceu nenhum “x”
Mas o programa não roda, já olhei tudo e nada. ):

Roda esse código para testar:

Eu chamei a minha classe que contém o método que retorna a quantidade de linhas do arquivo de ContaLinhaArquivo{}.


/**
 * @author Jonas
 * Objetivo: Testar a classe ContaLinhaArquivo
 */
package br.com.house.test;

import java.io.File;

import br.com.house.crud.ContaLinhaArquivo;

public class TestaContarArquivo {
	
	public static void main(String []args){		
			File file = new File("c:\\temporarios\\arquivo.txt");
			ContaLinhaArquivo cla = new ContaLinhaArquivo();
			int i = cla.contarLinhas(file);
		
			System.out.println("Quantidade de linhas = " + i);
	}
}