Ir ao conteúdo
  • Cadastre-se

Leitura de arquivos .txt


Posts recomendados

Sou novo em Java e estou desenvolvendo um projeto para a faculdade onde a entrada é fornecida através de um documento .txt . O problema é que só sei fazer isso em C/C++ e os tutoriais que achei na internet não funcionaram tão bem.. Como eu posso fazer?

 

O arquivo será assim:

1;Brasil

2;Estados Unidos

 

Eu já até fiz a lista onde os itens serão armazenados (Fiz uma classe País com id e nome) que está funcionando com o Scanner.. O meu problema mesmo é a manipulação do arquivo..

 

Tentei fazer o seguinte:

package olimpiadas;

import java.util.Scanner;
import java.io.FileReader;

public class Leitura {
    
    public static void main(String[] args) {
    
        try{
            Scanner scanner = new Scanner(new FileReader("pais.txt")).useDelimiter("\\||\\n");
            while (scanner.hasNext()) {
                String id = scanner.next();
                String nome = scanner.next();
                System.out.println(id);
                System.out.println(nome);
            }

        }
        catch(Exception ioException){
            System.out.println("O arquivo nao pode ser aberto!");
        }
    
    }
    
}

Mas:

1) O arquivo nunca abre, mesmo estando no mesmo pacote ele exibe que o arquivo não pode ser aberto

2) O id tem que ser int, mas só consigo com String 

 

Como resolver? :/

Link para o comentário
Compartilhar em outros sites

Gente, consegui dessa maneira, talvez ajude outras pessoas:

 

package Leitura;

import Classes.Pais;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class LeituraPais {

    public static void main(String[] args) {
        
        ArrayList <Pais> itens = new ArrayList<>();

        File file = new File("C:/pais.txt");
        
        try (FileInputStream stream = new FileInputStream(file)) {

            InputStreamReader reader = new InputStreamReader(stream);
            BufferedReader br = new BufferedReader(reader);
            String linha = br.readLine();
            while(linha != null) {
               String id = linha.substring(0, linha.indexOf(';'));
               String nome = linha.substring(linha.lastIndexOf(';') + 1, linha.length());
               
               int id_cod = Integer.parseInt(id);
               Pais p = new Pais(id_cod, nome);
               itens.add(p);
               
               linha = br.readLine();
            }

        } catch (IOException e) { 
        
        }
        
       System.out.println("\n");
       System.out.println("Lista final: ");
       for(int i = 0; i < itens.size(); i++)
       {
           System.out.println("Id: " + itens.get(i).getId());
           System.out.println("Nome: " + itens.get(i).getNome());
           System.out.print("\n");
       }
	
    }
}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!