Re:conversão de dados lidos de um arquivo

1 resposta
carloshsamaral

Amigo, bom dia...

Vamos lá eu fiz umas alterações no teu código e funcionou.

1) Retirei o useDelimiter de dentro dos scans: Nunca tinha visto o useDelimiter então fui ver que você delimitou a quebra de linha não precisa disso =]
2) Dentro do while coloquei o hasNextLine ao invés do hasNext
3) Percorro o array com um for

Scanner scanner = new Scanner(new FileReader("c:/int.txt"));
        int i=0;
        while (scanner.hasNextLine()) {
            String linha = scanner.nextLine();
            i++;
        }
        
        int[] array;
        array = new int[i];
        
        Scanner scan = new Scanner(new FileReader("c:/int.txt"));
        i=0;
        while (scan.hasNextLine()) {
            array[i] = Integer.parseInt(scan.nextLine());
            i++;
        }
        
        for(int z=0;z<array.length;z++){
        	System.out.println(array[z]);
        }
    }

Lembrando também sou meio novato =] Alguém pode aparecer com uma dica melhor

1 Resposta

J

Gente, preciso ler um arquivo, gravar em um array, e transformar pra int pra depois ordenar em algoritmo bolha feito a mão!
Estou tentando fazer isso por partes. A leitura do arquivo já consegui, mas agora está embaçado para transformar de String para int...
O código está abaixo, e retorna 4 exceções, listadas a seguir:

public class Ordenacao {

    /**
     * @param args the command line arguments
     * @throws java.io.FileNotFoundException
     */
    public static void main(String[] args) throws FileNotFoundException, IOException {
        // TODO code application logic here
        
        Scanner scanner = new Scanner(new FileReader("c:/int.txt")).useDelimiter("\\n");
        int i=0;
        while (scanner.hasNext()) {
            String linha = scanner.next();
            i++;
        }
        
        int[] array;
        array = new int[i];
        
        Scanner scan = new Scanner(new FileReader("c:/int.txt")).useDelimiter("\\n");
        i=0;
        while (scan.hasNext()) {
            array[i] = Integer.parseInt(scan.next());
            i++;
            System.out.println(array[i]);
        }

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at ordenacao.Ordenacao.main(Ordenacao.java:42)

Alguém me ajuda?

Criado 4 de novembro de 2015
Ultima resposta 4 de nov. de 2015
Respostas 1
Participantes 2