Ler arquivo .txt e transformar seu conteúdo em Array
Olá pessoal, eu sou iniciante (muito iniciante :neutral: ) em java. Eu tenho um arquivo .txt e e preciso fazer um código que acesse, leia esse arquivo e transforme cada linha dele em um vetor de String, ou seja, cada linha do arquivo tem que ser correspondente a um indice do vetor, sendo que o vetor tem que ter o tamanho do total da quantidade de linhas.
Conseguindo fazer isso, eu preciso ter uma opção para:
1) Listar todos as linhas
2) Procurar um conteúdo qualquer nas primeiras 50 posições de cada linha.
Eu já li a parte sobre arquivos e mais um monte de fóruns e não estou conseguindo entender. :cry: Um monte de cara ao invés de ajudar, postam códigos de dificil compreensão pra se aparecer ou querer aparecer que são bons demais e acabam confundindo mais. Sei que pra quem entende um pouco de java isso é muito fácil de fazer, mas eu estou começando com java na faculdade. Se alguém puder me ajudar a transformar um arquivo qualquer em um vetor de string eu ficaria muito grato. :shock:
Johnny Ribeiro
Curtidas 0
Respostas
Johnny Ribeiro
16/12/2009
Oi,
então escreve o que é que voce já conseguiu fazer e que é que não está conseguindo entender?
senão fica difícil ajudar...
[]]
[quote="JohnnyDoAmaral"] Olá pessoal, eu sou iniciante (muito iniciante :neutral: ) em java. Eu tenho um arquivo .txt e e preciso fazer um código que acesse, leia esse arquivo e transforme cada linha dele em um vetor de String, ou seja, cada linha do arquivo tem que ser correspondente a um indice do vetor, sendo que o vetor tem que ter o tamanho do total da quantidade de linhas.
Conseguindo fazer isso, eu preciso ter uma opção para:
1) Listar todos as linhas
2) Procurar um conteúdo qualquer nas primeiras 50 posições de cada linha.
Eu já li a parte sobre arquivos e mais um monte de fóruns e não estou conseguindo entender. :cry: Um monte de cara ao invés de ajudar, postam códigos de dificil compreensão pra se aparecer ou querer aparecer que são bons demais e acabam confundindo mais. Sei que pra quem entende um pouco de java isso é muito fácil de fazer, mas eu estou começando com java na faculdade. Se alguém puder me ajudar a transformar um arquivo qualquer em um vetor de string eu ficaria muito grato. :shock:
GOSTEI 0
Johnny Ribeiro
16/12/2009
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
*/
public class Esbosso {
public static void main(String[] args) {
String nomeArquivo = null;
String nomeArquivoCompleto = "C:\\Temp\\Esbosso\\src\\Contatos.txt";
nomeArquivo = nomeArquivoCompleto;
FileInputStream fin = null;
BufferedReader in = null;
String linha = null;
int qtddLinhas = 0;
String[] contatos = new String[qtddLinhas];
try {
fin = new FileInputStream(nomeArquivo);
in = new BufferedReader(new InputStreamReader(fin));
// IOException
while (in.ready()) {
// IOException
linha = in.readLine();
if (linha == null) {
break;
}
linha = linha.trim();
if (linha.length() != 0) {
System.out.println(linha);
qtddLinhas++;
}
}
System.out.println("Linhas: " + qtddLinhas);
// IOException
fin.close();
// IOException
in.close();
} catch (FileNotFoundException e) {
System.out.println("Arquivo não encontrado ...");
System.exit(1);
} catch (IOException e) {
System.out.println("Erro durante a leitura do arquivo ...");
System.exit(1);
}
}
}GOSTEI 0
Johnny Ribeiro
16/12/2009
Ahh, acho que o erro está nesta parte:
cria um Array com 0 posições já que qtddLinhas (ainda) é zero. Portanto não tem como armazenar qualquer linha nele.
O problema é saber o número de linhas antes de ler o arquivo. O mais fácil é usar uma ArrayList, que não tem tamanho fixo, para armazenar as linhas. Se for necessário é simples trabsformar num Array:
a última linha somente se for necessário obter um Array.
[]]
[quote="JohnnyDoAmaral"]
Essa é a parte da leitura do arquivo, e tá dando certo, ele tá mostrando as telas todos as linhas e no final a quantidade das linhas, o problema é fazer com que cada índice do vetor tenha uma linha do arquivo armazenando assim o arquivo inteiro em todas as posiçoes do vetor.
eu fiz um array String[] contatos = new String[qtddLinhas]; mas nunca dá certo.
int qtddLinhas = 0; String[] contatos = new String[qtddLinhas];
List<String> linhas = new ArrayList<String>();
...
while (...) {
...
System.out.println(linha);
linhas.add(linha);
qtddLinhas++; // desnecessario
...
}
String[] contatos = linhas.toArray(new String[linhas.size()]);
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
*/
public class Esbosso {
public static void main(String[] args) {
String nomeArquivo = null;
String nomeArquivoCompleto = "C:\\Temp\\Esbosso\\src\\Contatos.txt";
nomeArquivo = nomeArquivoCompleto;
FileInputStream fin = null;
BufferedReader in = null;
String linha = null;
int qtddLinhas = 0;
String[] contatos = new String[qtddLinhas];
try {
fin = new FileInputStream(nomeArquivo);
in = new BufferedReader(new InputStreamReader(fin));
// IOException
while (in.ready()) {
// IOException
linha = in.readLine();
if (linha == null) {
break;
}
linha = linha.trim();
if (linha.length() != 0) {
System.out.println(linha);
qtddLinhas++;
}
}
System.out.println("Linhas: " + qtddLinhas);
// IOException
fin.close();
// IOException
in.close();
} catch (FileNotFoundException e) {
System.out.println("Arquivo não encontrado ...");
System.exit(1);
} catch (IOException e) {
System.out.println("Erro durante a leitura do arquivo ...");
System.exit(1);
}
}
}GOSTEI 0