import java.io.FileReader;
import java.io.StreamTokenizer;
import java.io.FileOutputStream;
import java.util.Arrays;
public class zadanie_4
{
public static void main(String[] args)
{
/*==========================================================
Najpierw sprawdzamy jak duza tablice musimy stworzyc aby zmiescic w niej wszystkie liczby
z pliku parser.txt
==========================================================*/
//************************************************************* Otwieranie pliku
FileReader fr = null;
try
{
fr = new FileReader("parser.txt");
}
catch(Exception e)
{
System.out.println(e.toString());
}
//********************************************* Sprawdzanie ile jest w nim liczb
int odczyt=0,licznik=0;
StreamTokenizer st = new StreamTokenizer(fr);
try
{
while((odczyt = st.nextToken()) != StreamTokenizer.TT_EOF)
{
if(odczyt == StreamTokenizer.TT_NUMBER)
licznik++;
}
System.out.println("Wykryte liczby: " + licznik);
}
catch(Exception e)
{
System.out.println(e.toString());
}
//************************************************************* Zamykanie pliku
try
{
fr.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
/*==========================================================
Teraz gdy juz wiemy jak duzej tablicy potrzebujemy, tworzymy ja i zapisujemy do niej liczby
==========================================================*/
//******************************************************* Ponowne otwieranie pliku
FileReader fr_2 = null;
try
{
fr_2 = new FileReader("parser.txt");
}
catch(Exception e)
{
System.out.println(e.toString());
}
//******************************************************* Zapis liczb do tablicy
double tab [] = new double [licznik];
double liczba;
int i=0;
odczyt=0;
StreamTokenizer st_2 = new StreamTokenizer(fr_2);
try
{
while((odczyt = st_2.nextToken()) != StreamTokenizer.TT_EOF)
{
if(odczyt == StreamTokenizer.TT_NUMBER)
{
liczba = st_2.nval;
tab[i] = liczba;
i++;
}
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
//************************************************************* Zamykanie pliku
try
{
fr_2.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
/*==========================================================
Liczby sa juz w tablicy, teraz je posortujemy
==========================================================*/
//*********************************************************** Sortowanie tablicy
Arrays.sort(tab);
/*==========================================================
Posortowana zawartosc zapisujemy do nowego pliku
==========================================================*/
//************ Otwieranie nowego pliku i umieszczenie w nim posortowanych danych
FileOutputStream fos = null;
String str;
try
{
fos = new FileOutputStream("new_parser.txt");
for(int j=0;j<tab.length;j++)
{
str = Double.toString(tab[j]);
str += '\n';
for(int k=0;k<str.length();k++)
{
fos.write((int)str.charAt(k));
}
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
//************************************************************* Zamykanie pliku
try
{
fos.close();
}
catch(Exception e)
{
System.out.println(e.toString());
}
//******************************************************************************
System.out.println("Operacja zakonczona powodzeniem");
}
}
Ostatnio edytowany przez KG90 (2011-02-20 16:20:07)
Offline