Java - scanner, ponowny przebieg po pliku

2011-10-04 23:05
0
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;

import javax.swing.JOptionPane;

public class Glowna {

    /**
     * @param args
     */
    public static void main(String[] args) {

        try{
            File plik = new File("liczby.txt");
            File plik2 = new File("posortowane.txt");

            Scanner odczyt = new Scanner(plik);
            PrintWriter zapis = new PrintWriter(plik2);

            int ilosc_liczb = 0;

            while(odczyt.hasNextInt())
            {
                odczyt.nextInt();
                ilosc_liczb++;
            }

            odczyt = new Scanner(plik);

            int[] tablica = new int[ilosc_liczb];

            for(int i = 0; i<ilosc_liczb; i++)
            {
                tablica[i] = odczyt.nextInt();
            }
            Arrays.sort(tablica);

            for(int i = 0; i<ilosc_liczb; i++)
            {
                zapis.print(tablica[i]);
                zapis.println();
            }

            odczyt.close();
            zapis.close();

        }

        catch(FileNotFoundException exception)
        {
            JOptionPane.showMessageDialog(null,"Nie moge znaleźć pliku" );

        }

    }

}

Witam, mam następujące pytanie. Czy jest inny sposób niż ten którego użyłem wyżej, aby Scanner zaczął przeszukiwanie pliku od nowa? Z góry dzięki za odpowiedź

Pozostało 580 znaków

2011-10-05 00:09
bo
0

A dlaczego czytasz plik dwa razy? Użyj kolekcji zamiast tablicy.

   ArrayList<Integer> liczby=new ArrayList<Integer>();
   while(odczyt.hasNextInt())
   {
       liczby.add(odczyt.nextInt());
   }
   Collections.sort(liczby);
   //teraz zapis

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0