Ler Strings em um Arquivo Texto

5 respostas
A

Se eu tenho por exemplo um arquivo dados.txt da seguinta maneira

string1 string2            
string3                       
String4 String5 String6

Quais métodos e classes eu uso para ler estes strings um a um?

Obrigada

5 Respostas

_Renatu

Para aprender a ler arquivos:

http://www.guj.com.br/java.tutorial.artigo.13.1.guj

Para separar as strings corretamente, pode pensar em separar pelo método split da classe String, ou por um StringTokenizer…

Se forem coisas mais complexas, procure por expressoes regulares.

vanderlanio

Tutorial Guj : http://www.guj.com.br/java.tutorial.artigo.13.1.guj

rockstorm

Primeiramente acho que voce vai ter que ter um delimitador entre as strings…creio que seja um espaço, certo??
Depois vc ira ter que ler linha a linha… As linhas seguirão este padrão???

Ex:
Linha 1 com duas Strings
Linha 2 com uma Strings
Linha 3 com tres Strings

Use o split Ex:

String teste [] = linha.split("delimitador");

espero ter ajudado.

Alkamavo

AnnaLee:
Se eu tenho por exemplo um arquivo dados.txt da seguinta maneira

string1 string2            
string3                       
String4 String5 String6

Quais métodos e classes eu uso para ler estes strings um a um?

Obrigada

linha com duas strings delimitador…
linha com uma
String basta um nextLine()
para ler a linha completa…
nao ha duvidas–e nem pode haver…
hehehehe

B

Bom dia,
Você pode resolver isso da seguinte forma:
Primeiro eu criei uma classe chamada Conteudo. Ela irá armazenar todas as Strings de uma linha do arquivo.

import java.util.Vector;

public class Conteudo<String> {
    
    private Vector<String> strings;
    
    public Conteudo() {
        strings = new Vector<String>();
    }
    
    public void addString(String s) {
        strings.add(s);
    }
    
    public void imprimirStrings() {
        for (int i = 0; i < strings.size(); i++)
            System.out.print(strings.get(i) + " ");
        System.out.println();
    }
    
}

depois, é só ler o arquivo linha a linha e ir armazenando os tokens da linha na classe conteúdo.
Segue um exemplo de como fazer isso:

import java.io.*;   
import java.util.*;   
  
public class Main {   

    public static void main(String args[]) {
        // Vector para armazenar o Conteúdo das linhas do arquivo
        Vector<Conteudo> linhas = new Vector<Conteudo>();
        
        try {
            // Leitor do arquivo
            FileReader reader = new FileReader("c:\teste.txt");   
            BufferedReader leitor = new BufferedReader(reader);   

            // Linhas do arquivo
            String linha = null;
            while((linha = leitor.readLine())!= null) {
                Conteudo conteudo = new Conteudo();
                // Pega as SubStrings separadas por ' ' da String linha
                StringTokenizer tokenizer = new StringTokenizer(linha);
                while(tokenizer.hasMoreTokens()) {
                    String token = tokenizer.nextToken();
                    conteudo.addString(token);
                }
                linhas.add(conteudo);
            }
            
            for (int i = 0; i < linhas.size(); i++)
                linhas.get(i).imprimirStrings();
            
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }   
}

Espero ter ajudado…
att

Criado 26 de novembro de 2007
Ultima resposta 27 de nov. de 2007
Respostas 5
Participantes 6