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
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
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:
No código - Scanner in = new Scanner(file); aparece o X do lado e quando eu clico aparece o seguinte:
[quote]No código - import java.until.Scanner; aparece o X do lado e quando eu clico aparece o seguinte:
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);
}
}