|
Textový súbor
popis:tymito znakmi(----------) odelujem jedlotlive triedy programu(samostatne nefunguju)
---------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.util.*;
public abstract class Main {
private static String nazovSuboru() {
return "Readme.txt";
}
private static void suborNaKonzolu(String nazovSuboru)
throws FileNotFoundException {
String r;
System.out.println("********************************************\n*" +
" Výpis súboru " + nazovSuboru + " na konzolu\n*");
TextSubor v = new TextSubor(0, nazovSuboru);
System.out.println(v);
v.otvorVstupnySubor();
while ((r = v.dajRiadok()) != null) {
System.out.println(r);
}
}
private static void poleDoSuborovNaDisk(String subor1, String subor2)
throws FileNotFoundException {
System.out.println("********************************************\n*" +
" Uloženie dát do súboru " + subor1 + " a " + subor2 + "\n*");
Pole p = new Pole();
p.naplNahodne(10, -20, 20);
p.ulozDoSuboru(subor1);
p.bubbleSort();
p.ulozDoSuboru(subor2);
}
public static void main(String[] args) throws FileNotFoundException {
System.out.print("\f");
poleDoSuborovNaDisk("Cisla.txt", "Usporiadane.txt");
System.out.println("*\n********* K o n i e c *********");
}
}
-------------------------------------------------------------------------------------------------------------------
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.FileNotFoundException;
/**
* Práca so súborom.
* <li> vstupný a výstupný súbor
*/
public class TextSubor {
private String vstupnySubor; // meno vstupného súboru
private String vystupnySubor; // meno výstupného súboru
private FileReader inStream; // vstupný dátový prúd
private Scanner in; // snímač údajov z dátového prúdu
private PrintWriter out; // výstupný dátový prúd
/**
* Vytvorenie inštancie pre vstupný i výstupný súbor
* @param vstupnySubor názov vstupného súboru
* @param vystupnySubor názov výstupného súboru
*/
public TextSubor(String vstupnySubor, String vystupnySubor) {
this.vstupnySubor = vstupnySubor;
this.vystupnySubor = vystupnySubor;
in = null; inStream = null; out = null;
}
/**
* Vytvorenie inštancie pre vstupný alebo výstupný súbor
* @param io smer prenosu: 0= vstupný súbor, 1= výstupný súbor
* @param menoSuboru názov súboru
*/
public TextSubor(int io, String menoSuboru) {
this(null, null);
if (io == 0) vstupnySubor = menoSuboru;
if (io == 1) vystupnySubor = menoSuboru;
}
//************************************* Metódy pre vstupný súbor *********
/**
* Otvorenie súboru pre čítanie dát
*/
public void otvorVstupnySubor() throws FileNotFoundException {
if (vstupnySubor != null) {
inStream = new FileReader(vstupnySubor);
in = new Scanner(inStream);
}
}
/**
* Snímanie jedného riadku zo vstupného súboru
*/
public String dajRiadok() {
if (in.hasNext())
return in.nextLine();
else
return null;
}
//************************************* Metódy pre výstupný súbor *********
/**
* Otvorenie súboru pre uloženie dát
*/
public void otvorVystupnySubor() throws FileNotFoundException {
if (vystupnySubor != null) {
out = new PrintWriter(vystupnySubor);
}
}
/**
* Uloženie jedného riadku do výstupného súboru
*/
public void ulozRiadok(String riadok) {
out.println(riadok);
}
/**
* Uloženie celého čísla do výstupného súboru
*/
public void ulozCeleCislo(int cislo) {
out.println(cislo);
}
/**
* Zatvorenie súboru pre uloženie dát
*/
public void zatvorVystupnySubor() throws FileNotFoundException {
if (vystupnySubor != null) {
out.close();
}
}
//*********************************************** Spoločné metódy *********
/**
* Informácia o inštancii
*/
public String toString() {
String d = "\n";
String s = "|* DiskSubor: ----" + d;
s += "| Vstupný súbor : " + vstupnySubor + d;
s += "| Výstupný súbor: " + vystupnySubor + d;
s += "| Dátový prúd : " + inStream + d;
s += "| Scanner : " + in;
return s;
}
}
-------------------------------------------------------------------------------------------------------------------
import java.util.*; // pripojenie knižnice (.* = celá)
import java.io.FileNotFoundException;
/**
* Trieda pre prácu s poľom celých čísel
*/
public class Pole
{
private int pocet; // počet aktívnych prvkov pola
private int[] pole; // pole určené na triedenie
/**
* Vytvorí pole celých čísel so zadaním počtu hodnôt
* - vynuluje počet využitých prvkov
* @pocetMax maximálny počet prvkov poľa
*/
public Pole(int pocetMax) {
pole = new int[pocetMax];
pocet = 0;
}
/**
* Vytvorí pole so 100 číslami
*/
public Pole() {
this(100); // volá konštruktor pre vytvorenie stoprvkového poľa
}
/**
* Naplní pole náhodnými celočíselnými hodnotami
* @param pocetPrvkov počet vygenerovaných čísel
* @param rozsahOd dolná hodnota rozsahu
* @param rozsahDo horná hodnota rozsahu
*/
public boolean naplNahodne(int pocetPrvkov, int rozsahOd, int rozsahDo) {
Random rnd = new Random(); // inštancia generátora náhodných čísel
if (pocetPrvkov > pole.length) return false;
pocet = pocetPrvkov;
for (int i=0; i<pocetPrvkov; i++) {
pole[i] = rozsahOd + rnd.nextInt(rozsahDo - rozsahOd + 1);
}
return true;
}
/**
* Výpis prvkov poľa na konzolu<br>
* <i>--- možno prekryť metódu toString() ---</i>
* @param pocetCifier šírka poľa výpisu hodnoty ako počed znakov
*/
public void vypisNaKonzolu(int pocetCifier)
{
for (int i=0; i<pocet; i++) {
System.out.printf("%" + pocetCifier + "d", pole[i]);
}
System.out.println();
}
/**
* Prekrytá metóda - Zoznam prvkov poľa v tvare reťazca
* @return Reťazec s prvkami poľa
*/
public String toString() {
if (pocet == 0) return "Prázdne pole";
String ret = "[ " + pole[0];
for (int i = 1; i < pocet; i++) {
ret = ret + ", " + pole[i];
}
return ret + " ]";
}
/**
* Uloženie poľa do diskového súboru
* @param nazovSuboru názov disk.súboru pre uloženie poľa
*/
public void ulozDoSuboru(String nazovSuboru) throws FileNotFoundException {
TextSubor f = new TextSubor(1, nazovSuboru);
f.otvorVystupnySubor();
f.ulozCeleCislo(pocet);
for (int i=0; i<pocet; i++) {
f.ulozCeleCislo(pole[i]);
}
f.zatvorVystupnySubor();
}
/**
* Zámena obsahov dvoch premenných
* @param lavy index prvej premennej
* @param pravy index druhej premennej
*/
public void zamen(int lavy, int pravy) {
int temp = pole[lavy];
pole[lavy] = pole[pravy];
pole[pravy] = temp;
}
/**
* Bublinková metóda<br>
* <i>(Po odstránení naznačených poznámok je možné sledovať po každej
* obrátke premiestnenie nájdených bublín)</i>
*/
public void bubbleSort() {
boolean bolaZamena;
do { //************* cyklus "tlačenia bublín" väčších hodnôt doprava (1)
bolaZamena= false;
//* pre všetky prvky od začiatku po predposledný (2)
for (int i= 0; i < pocet - 1; i++) {
if (pole[i] > pole[i+1]) { //-- ak našiel bublinu --
zamen(i, i+1); // tak ju pretlačí doprava o jedno miesto
bolaZamena= true; // a indikuje, že prišlo k zmene poradia
}
} //^^^^ koniec cyklu (2) pre tlačenie bublín doprava ^^^^
} while (bolaZamena); //** koniec cyklu (1)
//- ak nastala zmena vykoná znovu telo cyklu (1)
}
}
Informácie:
Autor: Marek Tomčík
www: http://
Kategória: Dátové abstrakcie
Jazyk: Java
Dátum:4/26/2010 11:18:15 AM
|