public class Súbor extends Object implements Closeable
Trieda na prácu so súbormi. Definuje metódy na otváranie, zatváranie, zápis a čítanie textových súborov a metódy na prácu s takzvanými „vlastnosťami“ (pozri nižšie).
Príklad:
V tomto príklade je ukázaný jednoduchý spôsob zápisu niekoľkých riadkov textu do súboru a vzápätí vypísania obsahu súboru na obrazovku.
try
{// Otvoriť súbor na zápis a zapísať niekoľko riadkov
súbor
.otvorNaZápis
("pokus.txt"
);súbor
.zapíšRiadok
("Toto"
);súbor
.zapíšRiadok
("Je"
);súbor
.zapíšRiadok
("Pokusný"
);súbor
.zapíšRiadok
("Zápis"
);súbor
.zapíšRiadok
("Do"
);súbor
.zapíšRiadok
("Súboru"
);súbor
.zavri
();// Každý súbor musí byť po použití zatvorený
// Vzápätí otvoriť súbor na čítanie a vypísať ho po riadkoch
súbor
.otvorNaČítanie
("pokus.txt"
);String
riadok;while
(null
!= (riadok =súbor
.čítajRiadok
()))Svet
.vypíšRiadok
("„"
, riadok,"“"
); }catch
(IOException
e)// vyžaduje import java.io.IOException;
// alternatívne je možné použiť namiesto IOException všeobecný
// typ Exception, ktorý nevyžaduje žiadny import, ale potom by
// bolo vhodné vymazať nasledujúci blok catch (pretože sa
// stane zbytočným)
{// Keby sme chceli text chyby vypísať na štandardný výstup,
// použili by sme:
// System.out.println(e.getMessage());
// Keby sme chceli vypísať úplný výpis chybovej stopy na štandardný
// chybový výstup, použili by sme:
// e.printStackTrace();
// Použijeme vnútornú konzolu robota na výpis textu chyby červenou
// farbou:
Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }catch
(GRobotException
e)// Táto výnimka vzniká napríklad ak súbor
// nejestvuje. To by sa v našom prípade nemalo stať, ale ak
// by ste chceli tento príklad „recyklovať“ na iné účely, mal
// by tam tento blok byť.
{Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }// Keby nastala chyba v predchádzajúcom bloku, súbor by nemusel byť
// korektne zavretý, preto ho zatvárame v samostatnom bloku try-catch
try
{súbor
.zavri
(); }catch
(IOException
e) {// Chyby vypíše červenou farbou…
Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }
Ak sa všetko vykoná korektne, súbor bude obsahovať nasledujúce riadky:
Toto Je Pokusný Zápis Do Súboru
Na obrazovke budú jednotlivé riadky vypísané v úvodzovkách („“).
Príklad:
V tomto príklade je ukázaný jednoduchý spôsob čítania série celých čísiel zo súboru.
Predpokladajme, že v priečinku s projektom BlueJa jestvuje textový
súbor _čísla.txt
s nasledujúcim obsahom (medzery sú úmyselne
podfarbené tyrkysovou farbou):
8 23 3 4 32 0 -14 21 -2 +8 14 64 -0 -24
Nasledujúci úryvok kódu bude zo súboru čítať a vypisovať na obrazovku celé čísla dovtedy, kým sa tam nejaké vyskytujú:
try
{súbor
.otvorNaČítanie
("_čísla.txt"
); Long číslo;boolean
prvé =true
;while
(null
!= (číslo =súbor
.čítajCeléČíslo
())) {if
(prvé) prvé =false
;else
Svet
.vypíš
(", "
);Svet
.vypíš
(číslo); }Svet
.vypíšRiadok
("."
); }catch
(IOException
e)// vyžaduje import java.io.IOException;
// alternatívne je možné použiť namiesto IOException všeobecný
// typ Exception, ktorý nevyžaduje žiadny import, ale potom by
// bolo vhodné vymazať nasledujúci blok catch (pretože sa
// stane zbytočným)
{// Nasledujúci príkaz vypíše zápis o prípadnej chybe na štandardný
// chybový výstup (System.err). Zápis by sa objavil v okne
// terminálu BlueJa.
System
.err
."IOException: "
); e.printStackTrace
(); }catch
(GRobotException
e) {System
.err
."GRobotException: "
); e.printStackTrace
(); }
Výsledný výpis bude vyzerať takto:
8, 23, 3, 4, 32, 0, -14, 21, -2, 8, 14, 64, 0, -24.
Okrem klasických metód na čítanie a zápis, obsahuje trieda Súbor
aj metódy na zápis a čítanie vlastností, ktoré sú do textového
súboru ukladané v tvare názov=hodnota
.
Neodporúčame kombinovať použitie klasických metód na čítanie a zápis s metódami na čítanie a zápis vlastností. Rozdiel medzi oboma prístupmi je, že „klasické“ údaje musia byť čítané zo súboru v rovnakom poradí ako boli zapísané a vlastnosti môžu byť čítané a zapisované v ľubovoľnom poradí. Vlastnosti tiež ošetrujú výskyt takzvaných únikových (escape) sekvencií vo svojich hodnotách. Na lepšie pochopenie práce s vlastnosťami poslúži nasledujúci príklad:
Poznámka: Cenou za náhodný („nesekvenčný“)
prístup k hodnotám vlastností je vyššia pamäťová zložitosť
vnútorných algoritmov a z toho vyplývajúce pomalšie spracovanie pri
čítaní a zápise. Náhodný experiment pri tvorbe dokumentácie ukázal,
že trieda Súbor
dokáže spracovať aj relatívne veľké
konfiguračné súbory (určite najmenej päť megabajtov), ale ich spracovanie
(zostavenie, zápis, čítanie a analýza) trvalo niekoľko desiatok
sekúnd až minút (experiment bol náhodný, nie účelový a program na tvorbu
dokumentácie zostavoval a analyzoval asi päťdesiat rôzne veľkých
konfiguračných súborov – od kilobajtov po megabajty; procesy zostavenia
so zápisom a čítania s analýzou trvali niekoľko minút – experiment bol
vykonaný v roku 2018 na prenosnom počítači so štandardným výkonom).
try
{// Pokúsi sa otvoriť súbor na čítanie (ak nejestvuje, nastane
// výnimka a program skončí, preto je potrebné vopred vytvoriť
// prázdny súbor s názvom vlastnosti.txt – v operačnom systéme
// zvonka BlueJa alebo pripísať pred tento program úryvok kódu
// zverejnený nižšie – čítajte ďalej…)
súbor
.otvorNaČítanie
("vlastnosti.txt"
);// Definícia premenných obsahujúca čítanie vlastností zo súboru
double
[] pole =new
double
[]{2.2
,4.4
,2.8
,14.0
,18
};Double
číslo =súbor
.čítajVlastnosť
("číslo"
,new
Double
(0
));String
reťazec =súbor
.čítajVlastnosť
("reťazec"
,new
String
("pokus"
)); pole =súbor
.čítajVlastnosť
("pole"
, pole);// Zavretie súboru
súbor
.zavri
();// Výpis hodnôt premenných
Svet
.vypíšRiadok
("číslo: "
, číslo);Svet
.vypíšRiadok
("reťazec: "
, reťazec);Svet
.vypíšRiadok
("pole: "
, pole);// Zmena hodnoty prvku poľa (na demonštráciu)
pole[3
] *=2
;// Otvorenie súboru na zápis a zápis vlastností do súboru
// (namiesto obsahu premennej číslo zapíšeme konštantnú hodnotu
// 4 a v prvku pole[3] bude dvojnásobok pôvodnej hodnoty,
// všetky ostatné údaje zostanú v pôvodnom tvare)
súbor
.otvorNaZápis
("vlastnosti.txt"
);súbor
.zapíšVlastnosť
("číslo"
,4
);súbor
.zapíšVlastnosť
("reťazec"
, reťazec);súbor
.zapíšVlastnosť
("pole"
, pole); }catch
(IOException
e)// vyžaduje import java.io.IOException;
// alternatívne je možné použiť namiesto IOException všeobecný
// typ Exception, ktorý nevyžaduje žiadny import, ale potom by
// bolo vhodné vymazať nasledujúce bloky catch (pretože sa
// stanú zbytočnými)
{// Chyby vypíše červenou farbou…
Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }catch
(IllegalArgumentException
e) {Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }catch
(GRobotException
e) {Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }finally
{try
{// Zavretie súboru
súbor
.zavri
(); }catch
(IOException
e) {Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); } }
Ak sa všetko vykoná korektne (pozorne si prečítajte aj komentáre v príklade), na obrazovke bude výpis:
číslo: 0.0 reťazec: pokus pole: 2.2 4.4 2.8 14.0 18.0
V súbore však budú údaje zapísané s drobnými rozdielmi:
číslo=4 reťazec=pokus pole=2.2 4.4 2.8 28.0 18.0
Po každom ďalšom spustení programu bude hodnota štvrtého prvku poľa dvojnásobná.
Ak nechcete ručne vytvárať prázdny súbor vlastnosti.txt
zvonka BlueJa, tak pripíšte na začiatok programu nasledujúci úryvok
kódu, ktorý vykoná kontrolu, či súbor jestvuje a v prípade, že
nejestvuje ho vytvorí (na vytvorenie súboru ho stačí otvoriť na zápis
a zavrieť).
try
{if
(!Súbor
.jestvuje
("vlastnosti.txt"
)) {súbor
.otvorNaZápis
("vlastnosti.txt"
);súbor
.zavri
(); } }catch
(IOException
|IllegalArgumentException
e) {Farba
záloha =Svet
.farbaTextu
();Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(e.getMessage
());Svet
.farbaTextu
(záloha); }
Poznámka: Prosím, venujte pozornosť upozorneniu pri
metóde zapíšVlastnosť
!
Konštruktor a opis |
---|
Súbor() |
Modifikátor a typ | Metóda a opis |
---|---|
String |
aktivnaSekcia()
Alias pre
aktívnaSekcia . |
String |
aktívnaSekcia()
Vráti názov aktívnej sekcie.
|
void |
aktivujSekciu(String názov)
Pridá novú alebo aktivuje jestvujúcu sekciu konfiguračných
direktív.
|
boolean |
archivPriradeny()
Alias pre
archívPriradený . |
boolean |
archívPriradený()
Zistí, či je k tomuto súboru pripojený archív.
|
void |
citaj(Object... objekty)
Alias pre
čítaj . |
Boolean |
citajBoolean()
Alias pre
čítajBoolean . |
Long |
citajCeleCislo()
Alias pre
čítajCeléČíslo . |
Double |
citajRealneCislo()
Alias pre
čítajReálneČíslo . |
String |
citajRiadok()
Alias pre
čítajRiadok . |
String[][] |
citajTabulku(String názovSúboru,
String... nastavenia)
Alias pre
čítajTabuľku . |
Boolean |
citajVlastnost(String názov,
Boolean predvolenáHodnota)
Alias pre
čítajVlastnosť . |
boolean[] |
citajVlastnost(String názov,
boolean[] predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Farba |
citajVlastnost(String názov,
Color predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Double |
citajVlastnost(String názov,
Double predvolenáHodnota)
Alias pre
čítajVlastnosť . |
double[] |
citajVlastnost(String názov,
double[] predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Farba |
citajVlastnost(String názov,
Farebnosť predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Float |
citajVlastnost(String názov,
Float predvolenáHodnota)
Alias pre
čítajVlastnosť . |
float[] |
citajVlastnost(String názov,
float[] predvolenáHodnota)
Alias pre
čítajVlastnosť . |
char[] |
citajVlastnost(String názov,
char[] predvolenáHodnota)
Alias pre
čítajVlastnosť . |
int[] |
citajVlastnost(String názov,
int[] predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Integer |
citajVlastnost(String názov,
Integer predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Long |
citajVlastnost(String názov,
Long predvolenáHodnota)
Alias pre
čítajVlastnosť . |
long[] |
citajVlastnost(String názov,
long[] predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Point2D.Double |
citajVlastnost(String názov,
Point2D predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Bod |
citajVlastnost(String názov,
Poloha predvolenáHodnota)
Alias pre
čítajVlastnosť . |
String |
citajVlastnost(String názov,
String predvolenáHodnota)
Alias pre
čítajVlastnosť . |
StringBuffer |
citajVlastnost(String názov,
StringBuffer predvolenáHodnota)
Alias pre
čítajVlastnosť . |
Character |
citajZnak()
Alias pre
čítajZnak . |
void |
close()
|
int |
čítaj(Object... objekty)
Pokúsi sa prečítať zo súboru otvoreného na čítanie toľko textu,
koľko je potrebné na naplnenie zadaného počtu objektov, pričom
objem prečítaného textu je závislý od typu objektu.
|
Boolean |
čítajBoolean()
Prečíta zo súboru otvoreného na čítanie text od aktuálnej polohy
v súbore po najbližšiu medzeru alebo koniec riadka a pokúsi sa ho
previesť na objekt typu
Boolean
obsahujúci pravdivostnú hodnotu true /false . |
Long |
čítajCeléČíslo()
Prečíta zo súboru otvoreného na čítanie text od aktuálnej polohy
v súbore po najbližšiu medzeru alebo koniec riadka a pokúsi sa ho
previesť na celé číslo…
|
Double |
čítajReálneČíslo()
Prečíta zo súboru otvoreného na čítanie text od aktuálnej polohy
v súbore po najbližšiu medzeru alebo koniec riadka a pokúsi sa ho
previesť na reálne číslo…
|
String |
čítajRiadok()
Prečíta zo súboru otvoreného na čítanie riadok textu a vráti ho
v objekte typu
String . |
String[][] |
čítajTabuľku(String názovSúboru,
String... nastavenia)
Prečíta tabuľku zo zadaného súboru.
|
Boolean |
čítajVlastnosť(String názov,
Boolean predvolenáHodnota)
Číta hodnotu vlastnosti v tvare logickej hodnoty
true
/ false . |
boolean[] |
čítajVlastnosť(String názov,
boolean[] predvolenáHodnota)
Číta hodnotu vlastnosti do poľa logických hodnôt typu
boolean . |
Farba |
čítajVlastnosť(String názov,
Color predvolenáHodnota)
Číta hodnotu vlastnosti ako objekt, ktorý je odvodený od typu
Color . |
Double |
čítajVlastnosť(String názov,
Double predvolenáHodnota)
Číta hodnotu vlastnosti v tvare reálneho čísla.
|
double[] |
čítajVlastnosť(String názov,
double[] predvolenáHodnota)
Číta hodnotu vlastnosti do poľa reálnych čísel typu
double . |
Farba |
čítajVlastnosť(String názov,
Farebnosť predvolenáHodnota)
Číta hodnotu vlastnosti ako objekt, ktorý je implementáciou
rozhrania
Farebnosť . |
Float |
čítajVlastnosť(String názov,
Float predvolenáHodnota)
Číta hodnotu vlastnosti v tvare reálneho čísla.
|
float[] |
čítajVlastnosť(String názov,
float[] predvolenáHodnota)
Číta hodnotu vlastnosti do poľa reálnych čísel typu
float . |
char[] |
čítajVlastnosť(String názov,
char[] predvolenáHodnota)
Číta hodnotu vlastnosti do poľa znakov (
char [] ). |
int[] |
čítajVlastnosť(String názov,
int[] predvolenáHodnota)
Číta hodnotu vlastnosti do celočíselného poľa typu
int . |
Integer |
čítajVlastnosť(String názov,
Integer predvolenáHodnota)
Číta hodnotu vlastnosti v tvare celého čísla.
|
Long |
čítajVlastnosť(String názov,
Long predvolenáHodnota)
Číta hodnotu vlastnosti v tvare celého čísla.
|
long[] |
čítajVlastnosť(String názov,
long[] predvolenáHodnota)
Číta hodnotu vlastnosti do celočíselného poľa typu
long . |
Point2D.Double |
čítajVlastnosť(String názov,
Point2D predvolenáHodnota)
Číta hodnotu vlastnosti ako objekt, ktorý je odvodený od typu
Point2D . |
Bod |
čítajVlastnosť(String názov,
Poloha predvolenáHodnota)
Číta hodnotu vlastnosti ako objekt, ktorý je implementáciou
rozhrania
Poloha . |
String |
čítajVlastnosť(String názov,
String predvolenáHodnota)
Číta hodnotu vlastnosti v tvare reťazca.
|
StringBuffer |
čítajVlastnosť(String názov,
StringBuffer predvolenáHodnota)
Číta hodnotu vlastnosti v tvare reťazca, pričom výsledok je
vrátený v objekte typu
StringBuffer . |
Character |
čítajZnak()
Prečíta zo súboru otvoreného na nasledujúci znak a vráti jeho
hodnotu.
|
static String |
datumNaRetazec(long miliDátum)
Alias pre
dátumNaReťazec . |
static String |
dátumNaReťazec(long miliDátum)
Zostaví reťazec dátumu v predvolenom formáte zo zadaného počtu
milisekúnd počítaných od začiatku takzvanej epochy.
|
static String |
datumNaRetazec(long miliDátum,
String formát)
Alias pre
dátumNaReťazec . |
static String |
dátumNaReťazec(long miliDátum,
String formát)
Podľa zadaných údajov vytvorí reťazec dátumu.
|
static String |
dialogOtvorit(String titulok)
Alias pre
dialógOtvoriť . |
static String |
dialógOtvoriť(String titulok)
Otvorí používateľský dialóg na otvorenie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom.
|
static String |
dialogOtvorit(String titulok,
String predvolenýNázovSúboru,
String... filtre)
Alias pre
dialógOtvoriť . |
static String |
dialógOtvoriť(String titulok,
String predvolenýNázovSúboru,
String... filtre)
Otvorí používateľský dialóg na otvorenie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom.
|
static String |
dialogUlozit(String titulok)
Alias pre
dialógUložiť . |
static String |
dialogUlozit(String titulok,
String predvolenýNázovSúboru,
String... filtre)
Alias pre
dialógUložiť . |
static String |
dialógUložiť(String titulok)
Otvorí používateľský dialóg na uloženie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom.
|
static String |
dialógUložiť(String titulok,
String predvolenýNázovSúboru,
String... filtre)
Otvorí používateľský dialóg na uloženie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom.
|
String |
docitajRiadok()
Alias pre
dočítajRiadok . |
String |
dočítajRiadok()
Umožňuje dočítať zo súboru otvoreného na čítanie aktuálne
spracúvaný riadok textu.
|
static boolean |
existuje(String názov)
Overí, či súbor alebo priečinok so zadaným názvom jestvuje.
|
static boolean |
jePriecinok(String názov)
Alias pre
jePriečinok . |
static boolean |
jePriečinok(String názov)
Overí, či zadaný názov označuje priečinok.
|
static boolean |
jestvuje(String názov)
Overí, či súbor alebo priečinok so zadaným názvom jestvuje.
|
static boolean |
jeSubor(String názov)
Alias pre
jeSúbor . |
static boolean |
jeSúbor(String názov)
Overí, či zadaný názov určuje obyčajný súbor.
|
String |
kdeJeSubor(String názovSúboru)
Alias pre
kdeJeSúbor . |
static String |
kdeJeSúbor(String názovSúboru)
Vyhľadá skutočné umiestnenie súboru určeného na čítanie alebo
vráti hodnotu
null , ak súbor nebol nájdený. |
boolean |
koniecRiadka()
Overí, či sa prúd údajov čítaný zo súboru momentálne nachádza na
konci riadka.
|
boolean |
koniecSuboru()
Alias pre
koniecSúboru . |
boolean |
koniecSúboru()
Overí, či sa prúd údajov čítaný zo súboru skončil.
|
static byte[] |
kontrolnySucet(String názov)
Alias pre
kontrolnýSúčet . |
static byte[] |
kontrolnýSúčet(String názov)
Vyrobí kontrolný súčet súboru algoritmom SHA1.
|
static void |
kopiruj(String zdroj,
String cieľ)
Alias pre
kopíruj . |
static void |
kopíruj(String zdroj,
String cieľ)
Skopíruje zdrojový súbor do cieľového súboru.
|
static void |
kopiruj(String zdroj,
String cieľ,
boolean prepísať)
Alias pre
kopíruj . |
static void |
kopíruj(String zdroj,
String cieľ,
boolean prepísať)
Skopíruje zdrojový súbor do cieľového súboru.
|
String |
mennyPriestorVlastnosti()
Alias pre
mennýPriestorVlastností . |
String |
mennýPriestorVlastností()
|
void |
mennyPriestorVlastnosti(String novýMennýPriestor)
Alias pre
mennýPriestorVlastností . |
void |
mennýPriestorVlastností(String novýMennýPriestor)
|
static long |
naposledyUpraveny(String názov)
Alias pre
naposledyUpravený . |
static long |
naposledyUpravený(String názov)
Zistí dátum a čas poslednej úpravy zadaného súboru alebo
priečinka.
|
static void |
naposledyUpraveny(String názov,
long miliDátum)
Alias pre
naposledyUpravený . |
static void |
naposledyUpravený(String názov,
long miliDátum)
Nastaví dátum a čas poslednej úpravy zadaného súboru alebo
priečinka.
|
static boolean |
novyPriecinok(String názov)
Alias pre
vytvorPriečinok . |
static boolean |
novyPriecinok(String názov,
boolean ajRodičov)
Alias pre
vytvorPriečinok . |
static boolean |
novýPriečinok(String názov)
Alias pre
vytvorPriečinok . |
static boolean |
novýPriečinok(String názov,
boolean ajRodičov)
Alias pre
vytvorPriečinok . |
void |
odstranujNepouziteVlastnosti()
Alias pre
odstraňujNepoužitéVlastnosti . |
void |
odstraňujNepoužitéVlastnosti()
Prepne inštanciu do režimu odstraňovania nepoužitých vlastností.
|
void |
otvorNaCitanie(String názovSúboru)
Alias pre
otvorNaČítanie . |
void |
otvorNaCitanie(String názovSúboru,
String kódovanie)
Alias pre
otvorNaČítanie . |
void |
otvorNaČítanie(String názovSúboru)
Otvorí zadaný súbor s kódovaním UTF-8 na čítanie.
|
void |
otvorNaČítanie(String názovSúboru,
String kódovanie)
Otvorí zadaný súbor na čítanie.
|
void |
otvorNaZapis(String názovSúboru)
Alias pre
otvorNaZápis . |
void |
otvorNaZápis(String názovSúboru)
Otvorí zadaný súbor na zápis.
|
void |
otvorNaZapis(String názovSúboru,
boolean pripojiť)
Alias pre
otvorNaZápis . |
void |
otvorNaZápis(String názovSúboru,
boolean pripojiť)
Otvorí zadaný súbor na zápis.
|
void |
otvorNaZapis(String názovSúboru,
String kódovanie,
boolean pripojiť)
Alias pre
otvorNaZápis . |
void |
otvorNaZápis(String názovSúboru,
String kódovanie,
boolean pripojiť)
Otvorí zadaný súbor na zápis.
|
static boolean |
porovnaj(String názov1,
String názov2)
Porovná obsah dvoch súborov.
|
static String |
predvolenaCestaDialogov()
Alias pre
predvolenáCestaDialógov . |
static String |
predvolenáCestaDialógov()
|
static void |
predvolenaCestaDialogov(String cesta)
Alias pre
predvolenáCestaDialógov . |
static void |
predvolenáCestaDialógov(String cesta)
|
void |
prekladajVlastnosti(String[][] prekladyNázvov,
String[][] prekladyHodnôt)
Táto metóda zapne alebo vypne automatický preklad názvov a hodnôt
vlastností tak, aby aj tie vlastnosti konfiguračných súborov, ktoré
programovací rámec zapisuje automaticky, mohli byť v prípade potreby
používané v cudzojazyčnom prostredí.
|
static boolean |
premenuj(String zdroj,
String cieľ)
Premenuje (presunie) zdrojový súbor alebo priečinok na cieľový
súbor alebo priečinok (do cieľovej cesty).
|
void |
premenujSekciu(String názov)
Zmení názov aktuálnej sekcie.
|
static boolean |
presun(String zdroj,
String cieľovýPriečinok)
Alias pre
presuň . |
static boolean |
presuň(String zdroj,
String cieľovýPriečinok)
Presunie zdrojový súbor alebo priečinok do cieľovej cesty.
|
static void |
pripoj(String zdroj,
String cieľ)
Pripojí zdrojový súbor k cieľovému súboru.
|
void |
pripojArchiv(Archív archív)
Alias pre
pripojArchív . |
void |
pripojArchív(Archív archív)
Priradí k tomuto súboru zadanú inštanciu archívu.
|
static long |
retazecNaDatum(String dátum)
Alias pre
reťazecNaDátum . |
static long |
reťazecNaDátum(String dátum)
Vráti dátum v milisekundách počítaných od začiatku takzvanej
epochy.
|
static long |
retazecNaDatum(String dátum,
String formát)
Alias pre
reťazecNaDátum . |
static long |
reťazecNaDátum(String dátum,
String formát)
Vráti dátum v milisekundách počítaných od začiatku takzvanej
epochy.
|
static String[][] |
retazecNaTabulku(String tabuľka,
String... nastavenia)
Alias pre
reťazecNaTabuľku . |
static String[][] |
reťazecNaTabuľku(String tabuľka,
String... nastavenia)
Prevedie zadaný reťazec na tabuľku.
|
static boolean |
suctySuZhodne(byte[] kontrolnýSúčet1,
byte[] kontrolnýSúčet2)
Alias pre
súčtySúZhodné . |
static boolean |
súčtySúZhodné(byte[] kontrolnýSúčet1,
byte[] kontrolnýSúčet2)
Porovná zhodu dvoch kontrolných súčtov súborov.
|
static String |
tabulkaNaRetazec(String[][] tabuľka,
String... nastavenia)
Alias pre
tabuľkaNaReťazec . |
static String |
tabuľkaNaReťazec(String[][] tabuľka,
String... nastavenia)
Prevedie tabuľku na jeden reťazec.
|
static long |
velkost(String názov)
Alias pre
veľkosť . |
static long |
veľkosť(String názov)
Zistí veľkosť zadaného súboru alebo zdroja.
|
boolean |
vlastnostExistuje(String názov)
Alias pre
vlastnosťJestvuje . |
boolean |
vlastnosťExistuje(String názov)
Alias pre
vlastnosťJestvuje . |
boolean |
vlastnostJestvuje(String názov)
Alias pre
vlastnosťJestvuje . |
boolean |
vlastnosťJestvuje(String názov)
Zistí, či je v súbore otvorenom na čítanie (vlastností)
definovaná zadaná vlastnosť.
|
void |
vnorMennyPriestorVlastnosti()
Alias pre
vnorMennýPriestorVlastností . |
void |
vnorMennýPriestorVlastností()
Zálohuje aktuálny menný priestor na čítanie a zápis
vlastností do vnútorného zásobníka.
|
void |
vnorMennyPriestorVlastnosti(String vnorenýMennýPriestor)
Alias pre
vnorMennýPriestorVlastností . |
void |
vnorMennýPriestorVlastností(String vnorenýMennýPriestor)
Zmení menný priestor na čítanie a zápis vlastností tak, aby
vznikol vnorený priestor podľa konvencie opísanej nižšie.
|
static boolean |
vymaz(String názov)
Alias pre
vymaž . |
void |
vymazSekciu(String názov)
Alias pre
vymažSekciu . |
void |
vymazVlastnost(String názov)
Alias pre
vymažVlastnosť . |
static boolean |
vymaž(String názov)
Vymaže súbor alebo priečinok so zadaným názvom.
|
void |
vymažSekciu(String názov)
Vymaže sekciu so zadaným názvom.
|
void |
vymažVlastnosť(String názov)
Odstráni zo súboru záznam o vlastnosti so zadaným menom.
|
void |
vymažVlastnosti()
Vymaže všetky vlastnosti z vnútornej pamäte, ktoré mohli zostať
zapamätané po poslednom čítaní súboru.
|
void |
vynorMennyPriestorVlastnosti()
Alias pre
vynorMennýPriestorVlastností . |
void |
vynorMennýPriestorVlastností()
Obnoví posledný zálohovaný menný priestor na čítanie a zápis
vlastností z vnútorného zásobníka.
|
static boolean |
vytvorPriecinok(String názov)
Alias pre
vytvorPriečinok . |
static boolean |
vytvorPriecinok(String názov,
boolean ajRodičov)
Alias pre
vytvorPriečinok . |
static boolean |
vytvorPriečinok(String názov)
Vytvorí nový priečinok so zadaným názvom buď v aktuálnom
priečinku, alebo na zadanej ceste (pripojenej pred názvom).
|
static boolean |
vytvorPriečinok(String názov,
boolean ajRodičov)
Vytvorí nový priečinok so zadaným názvom buď v aktuálnom
priečinku, alebo na zadanej ceste (pripojenej pred názvom).
|
void |
zachovajNepouziteVlastnosti()
Alias pre
zachovajNepoužitéVlastnosti . |
void |
zachovajNepoužitéVlastnosti()
Prepne inštanciu do režimu zachovávania nepoužitých vlastností.
|
boolean |
zachovavaNepouziteVlastnosti()
Alias pre
zachovávaNepoužitéVlastnosti . |
boolean |
zachovávaNepoužitéVlastnosti()
Zistí v akom režime sa nachádza táto inštancia triedy
Súbor . |
void |
zapis(Object... objekty)
Alias pre
zapíš . |
void |
zapisBOM()
Alias pre
zapíšBOM . |
void |
zapisKomentarVlastnosti(String komentár)
Alias pre
zapíšKomentárVlastností . |
void |
zapisPrazdnyRiadokVlastnosti()
Alias pre
zapíšPrázdnyRiadokVlastností . |
void |
zapisRetazec(String text)
Alias pre
zapíšReťazec . |
void |
zapisRiadok()
Alias pre
zapíšRiadok . |
void |
zapisRiadok(String text)
Alias pre
zapíšRiadok . |
void |
zapisTabulku(String názovSúboru,
String[][] tabuľka,
String... nastavenia)
Alias pre
zapíšTabuľku . |
void |
zapisVlastnost(String názov,
Object hodnota)
Alias pre
zapíšVlastnosť . |
void |
zapíš(Object... objekty)
Zapíše do súboru otvoreného na zápis textovú podobu zoznamu
objektov rôzneho údajového typu (napríklad celé čísla
int budú zapísané ako séria číslic – čísla vo forme textu). |
void |
zapíšBOM()
Zapíše do súboru otvoreného na zápis značku BOM.
|
void |
zapíšKomentárVlastností(String komentár)
Dovoľuje vkladať do textových súborov vlastností jednoriadkové
komentáre.
|
void |
zapíšPrázdnyRiadokVlastností()
Dovoľuje vkladať do textových súborov vlastností prázdne riadky
slúžiace ako oddeľovače.
|
void |
zapíšReťazec(String text)
Zapíše do súboru otvoreného na zápis určený reťazec.
|
void |
zapíšRiadok()
Zapíše do súboru otvoreného na zápis prázdny riadok.
|
void |
zapíšRiadok(String text)
Zapíše do súboru otvoreného na zápis riadok textu.
|
void |
zapíšTabuľku(String názovSúboru,
String[][] tabuľka,
String... nastavenia)
Zapíše tabuľku do zadaného súboru.
|
void |
zapíšVlastnosť(String názov,
Object hodnota)
Zapíše vlastnosť podporovaného údajového typu.
|
void |
zavri()
|
static String[] |
zoznam(String cesta)
Vytvorí zoznam všetkých položiek umiestnených na zadanej ceste.
|
static String[] |
zoznamPriecinkov(String cesta)
Alias pre
zoznamPriečinkov . |
static String[] |
zoznamPriečinkov(String cesta)
Vytvorí zoznam priečinkov umiestnených na zadanej ceste.
|
Zoznam<String> |
zoznamSekcii()
Alias pre
zoznamSekcií . |
Zoznam<String> |
zoznamSekcií()
Vráti zoznam aktuálnych sekcií definovaných v tomto
konfiguračnom súbore.
|
static String[] |
zoznamSuborov(String cesta)
Alias pre
zoznamSúborov . |
static String[] |
zoznamSúborov(String cesta)
Vytvorí zoznam súborov umiestnených v zadanom priečinku.
|
static String[] |
zoznamSuborovAPriecinkov(String cesta)
Alias pre
zoznamSúborovAPriečinkov . |
static String[] |
zoznamSúborovAPriečinkov(String cesta)
Vytvorí zoznam súborov a priečinkov umiestnených v zadanom
priečinku.
|
Zoznam<String> |
zoznamVlastnosti()
Alias pre
zoznamVlastností . |
Zoznam<String> |
zoznamVlastností()
Vráti zoznam vlastností definovaných v aktuálnej sekcii
konfigurácie.
|
public String aktívnaSekcia()
Vráti názov aktívnej sekcie. Prázdny reťazec označuje prvú bezmennú konfiguračnú pasáž.
aktivujSekciu(String)
,
vymažSekciu(String)
,
premenujSekciu(String)
,
zoznamSekcií()
public String aktivnaSekcia()
Alias pre aktívnaSekcia
.
public void aktivujSekciu(String názov) throws IOException
Pridá novú alebo aktivuje jestvujúcu sekciu konfiguračných direktív. Prázdny reťazec označuje prvú bezmennú konfiguračnú pasáž. (Tá je definovaná predvolene.)
Poznámka: Hodnota null
je v tomto prípade nahradená hodnotou prázdneho reťazca
""
, takže tiež označuje predvolený (bezmenný)
konfiguračný priestor.
názov
– názov novej alebo jestvujúcej sekcieIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiaktívnaSekcia()
,
vymažSekciu(String)
,
premenujSekciu(String)
,
zoznamSekcií()
public void vymažSekciu(String názov) throws IOException
Vymaže sekciu so zadaným názvom.
Pozor! Táto akcia je nevratná!
názov
– názov sekcie na vymazanieIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiaktívnaSekcia()
,
aktivujSekciu(String)
,
premenujSekciu(String)
,
zoznamSekcií()
public void vymazSekciu(String názov) throws IOException
Alias pre vymažSekciu
.
IOException
public void premenujSekciu(String názov) throws IOException
Zmení názov aktuálnej sekcie. Nový názov nesmie byť v konflikte s pomenovaním jestvujúcej sekcie. Ak je použitý prázny názov, tak (v prípade, že prázdna sekcia nejestvuje) bude táto sekcia premiestnená na prvé miesto v konfiguračnom súbore.
názov
– nový názov sekcieIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiaktívnaSekcia()
,
aktivujSekciu(String)
,
vymažSekciu(String)
,
zoznamSekcií()
public Zoznam<String> zoznamSekcií() throws IOException
Vráti zoznam aktuálnych sekcií definovaných v tomto konfiguračnom súbore. Zmeny vykonané vo vrátenom zozname nemajú žiadny vplyv na skutočné sekcie konfigurácie.
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítanie,
prípadne obsahuje chybuaktívnaSekcia()
,
aktivujSekciu(String)
,
vymažSekciu(String)
,
premenujSekciu(String)
,
zoznamVlastností()
public Zoznam<String> zoznamSekcii() throws IOException
Alias pre zoznamSekcií
.
IOException
public static String[] zoznamSúborov(String cesta)
Vytvorí zoznam súborov umiestnených v zadanom priečinku.
cesta
– cesta a názov priečinka, z obsahu ktorého má byť
vytvorený zoznamString
so zoznamom
súborovGRobotException
– ak zadaná cesta nebola nájdená alebo
je neplatná; ak zadaná cesta nespĺňa niektoré pravidlo platnej
cestypublic static String[] zoznamSuborov(String cesta)
Alias pre zoznamSúborov
.
public static String[] zoznamPriečinkov(String cesta)
Vytvorí zoznam priečinkov umiestnených na zadanej ceste.
cesta
– cesta na ktorej sa majú hľadať priečinkyString
so zoznamom
priečinkovGRobotException
– ak zadaná cesta nebola nájdená alebo
je neplatná; ak zadaná cesta nespĺňa niektoré pravidlo platnej
cestypublic static String[] zoznamPriecinkov(String cesta)
Alias pre zoznamPriečinkov
.
public static String[] zoznamSúborovAPriečinkov(String cesta)
Vytvorí zoznam súborov a priečinkov umiestnených v zadanom priečinku.
cesta
– cesta a názov priečinka, z obsahu ktorého má byť
vytvorený zoznamString
so zoznamom
súborov a priečinkovGRobotException
– ak zadaná cesta nebola nájdená alebo
je neplatná; ak zadaná cesta nespĺňa niektoré pravidlo platnej
cestypublic static String[] zoznamSuborovAPriecinkov(String cesta)
Alias pre zoznamSúborovAPriečinkov
.
public static String[] zoznam(String cesta)
Vytvorí zoznam všetkých položiek umiestnených na zadanej ceste.
Je pravdepodobné, že zoznam bude zhodný so zoznamom vytvoreným
pomocou metódy zoznamSúborovAPriečinkov
, no tento zoznam môže obsahovať aj
také položky, ktoré nie sú klasifikované ani ako súbory, ani ako
priečinky (napríklad systémové odkazy, aliasy, jednotky…).
cesta
– cesta a názov priečinka, z obsahu ktorého má byť
vytvorený zoznamString
so zoznamom
položiekGRobotException
– ak zadaná cesta nebola nájdená alebo
je neplatná; ak zadaná cesta nespĺňa niektoré pravidlo platnej
cestypublic static boolean existuje(String názov)
Overí, či súbor alebo priečinok so zadaným názvom jestvuje.
Metóda overuje len jestvovanie reálnych súborov na pevnom disku
a len v rámci aktuálneho umiestnenia – neprehľadáva cestu
classpath
ani balíček .jar
. V prípade
potreby môžete použiť metódu kdeJeSúbor
, ktorá uvedené umiestnenia prehľadáva, a ktorá
v prípade nenájdenia súboru vráti hodnotu null
.
názov
– názov súboru alebo priečinkatrue
– áno; false
– niepublic static boolean jestvuje(String názov)
Overí, či súbor alebo priečinok so zadaným názvom jestvuje.
Metóda overuje len jestvovanie reálnych súborov na pevnom
disku a len v rámci aktuálneho umiestnenia (resp. na presne
zadanej ceste) – neprehľadáva cestu classpath
ani
balíček .jar
. V prípade potreby môžete použiť metódu
kdeJeSúbor
, ktorá uvedené
umiestnenia prehľadáva, a ktorá v prípade nenájdenia súboru
vráti hodnotu null
.
názov
– názov súboru alebo priečinkatrue
– áno; false
– niekdeJeSúbor(String)
public static boolean vytvorPriečinok(String názov, boolean ajRodičov)
Vytvorí nový priečinok so zadaným názvom buď v aktuálnom
priečinku, alebo na zadanej ceste (pripojenej pred názvom).
Ak je parameter ajRodičov rovný true
, tak sa metóda
pokúsi vytvoriť aj rodičovské priečinky, ktoré nejestvujú.
názov
– názov súboru alebo priečinkaajRodičov
– určuje, či sa má metóda pokúsiť vytvoriť aj
prípadných rodičovtrue
vtedy a len vtedy, ak bol priečinok
(vrátane prípadných rodičovských priečinkov) úspešne vytvorený
úspešne, inak false
public static boolean vytvorPriecinok(String názov, boolean ajRodičov)
Alias pre vytvorPriečinok
.
public static boolean novýPriečinok(String názov, boolean ajRodičov)
Alias pre vytvorPriečinok
.
public static boolean novyPriecinok(String názov, boolean ajRodičov)
Alias pre vytvorPriečinok
.
public static boolean vytvorPriečinok(String názov)
Vytvorí nový priečinok so zadaným názvom buď v aktuálnom priečinku, alebo na zadanej ceste (pripojenej pred názvom).
názov
– názov súboru alebo priečinkatrue
vtedy a len vtedy, ak bol priečinok
úspešne vytvorený úspešne, inak false
public static boolean vytvorPriecinok(String názov)
Alias pre vytvorPriečinok
.
public static boolean novýPriečinok(String názov)
Alias pre vytvorPriečinok
.
public static boolean novyPriecinok(String názov)
Alias pre vytvorPriečinok
.
public static boolean jeSúbor(String názov)
Overí, či zadaný názov určuje obyčajný súbor. Obyčajný súbor znamená nie priečinok, ani iná špeciálna položka v rámci súborového systému.
názov
– názov súboru alebo priečinkatrue
v prípade, že súbor so zadaným názvom
jestvuje a ide o normálny súbor, inak false
public static boolean jePriečinok(String názov)
Overí, či zadaný názov označuje priečinok.
názov
– názov súboru alebo priečinkatrue
v prípade, že položka so zadaným názvom
jestvuje a je to priečinok, inak false
public static boolean jePriecinok(String názov)
Alias pre jePriečinok
.
public static boolean porovnaj(String názov1, String názov2) throws IOException
Porovná obsah dvoch súborov. Oba názvy musia označovať súbory,
inak vznikne výnimka. Ak obidva súbory nejestvujú, je to
vyhodnotené ako zhoda. Ak nejestvuje iba jeden zo súborov, vznikne
výnimka, preto musí byť príkaz uzavretý do bloku try-catch
(pozri napríklad príklad v opise metódy kopíruj
). Ak obidva súbory jestvujú, tak sú
porovnané a v prípade ich zhody je návratová hodnota rovná
true
, inak je rovná false
.
V rámci obsluhy udalostí je k dispozícii reakcia – sekvencia
(s prislúchajúcim variantom pre jednotlivé roboty).
Počas procesu porovnávania je uvedená reakcia spúšťaná (samozrejme
aj so všetkými jej variantmi) s kódom spracovania
POROVNANIE_SÚBOROV
.
názov1
– názov (a cesta) prvého súborunázov2
– názov (a cesta) druhého súborutrue
v prípade, že sú súbory zhodné,
inak false
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– jeden zo zadaných objektov nie je súbor
alebo nejestvuje len jeden zo súborov (pričom druhý áno)public static void kopíruj(String zdroj, String cieľ, boolean prepísať) throws IOException
Skopíruje zdrojový súbor do cieľového súboru. Oba názvy musia
označovať súbory, inak vznikne výnimka. Zdrojový súbor musí
jestvovať a ak nie je argument prepísať
rovný true
, cieľový súbor nesmie jestvovať. Počas procesu
kopírovania môže vzniknúť výnimka, preto musí byť príkaz uzavretý
do bloku try-catch
:
String
zdroj ="citajma.txt"
;String
cieľ ="zaloha_citajma.txt"
;try
{Súbor
.kopíruj
(zdroj, cieľ,true
);Svet
.správa
("Súbor „"
+ zdroj +"“ úspešne skopírovaný do „"
+ cieľ +"“…"
); }catch
(Exception
e) {Svet
.správa
(e.getMessage
()); }
V rámci obsluhy udalostí je k dispozícii reakcia – sekvencia
(s prislúchajúcim variantom pre jednotlivé roboty).
Počas procesu kopírovania je uvedená reakcia spúšťaná (samozrejme
aj so všetkými jej variantmi) s kódom spracovania KOPÍROVANIE_SÚBOROV
.
zdroj
– názov (a cesta) zdrojového súborucieľ
– názov (a cesta) cieľového súboruprepísať
– ak je true
, cieľový súbor bude
prepísaný (ak jestvuje)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak argument prepísať je false
a cieľový súbor jestvuje; ak cieľový súbor nemôže byť
prepísaný, lebo nie je súborom; ak zdrojový súbor nie je
súborom; ak zdrojový súbor nejestvujepublic static void kopiruj(String zdroj, String cieľ, boolean prepísať) throws IOException
Alias pre kopíruj
.
IOException
public static void kopíruj(String zdroj, String cieľ) throws IOException
Skopíruje zdrojový súbor do cieľového súboru. Oba názvy musia
označovať súbory, inak vznikne výnimka. Zdrojový súbor musí
jestvovať a cieľový súbor nesmie jestvovať. Počas procesu
kopírovania môže vzniknúť výnimka, preto musí byť príkaz
uzavretý do bloku try-catch
(pozri príklad pri kopíruj(zdroj, cieľ,
prepísať)
).
zdroj
– názov (a cesta) zdrojového súborucieľ
– názov (a cesta) cieľového súboruIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciipublic static void kopiruj(String zdroj, String cieľ) throws IOException
Alias pre kopíruj
.
IOException
public static void pripoj(String zdroj, String cieľ) throws IOException
Pripojí zdrojový súbor k cieľovému súboru. Oba názvy musia
označovať súbory a oba musia jestvovať, inak vznikne výnimka.
Počas procesu pripájania môže vzniknúť výnimka, preto musí byť
príkaz uzavretý do bloku try-catch
(podobne ako ostatné
príkazy tejto triedy)…
V rámci obsluhy udalostí je k dispozícii reakcia – sekvencia
(s prislúchajúcim variantom pre jednotlivé roboty).
Počas procesu pripájania je uvedená reakcia spúšťaná (samozrejme
aj so všetkými jej variantmi) s kódom spracovania PRIPÁJANIE_SÚBOROV
.
zdroj
– názov (a cesta) zdrojového súborucieľ
– názov (a cesta) cieľového súboruIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak cieľový súbor nemôže byť použitý,
lebo nie je súborom; ak zdrojový súbor nie je súborom; alebo
ak zdrojový súbor nejestvujepublic static boolean premenuj(String zdroj, String cieľ)
Premenuje (presunie) zdrojový súbor alebo priečinok na cieľový súbor alebo priečinok (do cieľovej cesty). Počas vykonania tejto operácie musí byť braných do úvahy veľa platformovo závislých aspektov. Premenovanie (presun) môže zlyhať z mnohých dôvodov: presun medzi rôznymi súborovými systémami, pokus o presun netriviálnej položky, pokus o premenovanie na názov jestvujúceho súboru… Vždy by ste mali overiť návratovú hodnotu tejto metódy, aby ste si mohli byť istí, že operácia prebehla úspešne.
zdroj
– názov (a cesta) zdrojového súboru alebo priečinkacieľ
– názov (a cesta) cieľového súboru alebo priečinkatrue
vtedy a len vtedy, ak operácia
premenovania prebehla úspešne, inak false
public static boolean presuň(String zdroj, String cieľovýPriečinok)
Presunie zdrojový súbor alebo priečinok do cieľovej cesty. Počas vykonania tejto operácie musí byť braných do úvahy veľa platformovo závislých aspektov. Presun môže zlyhať z mnohých dôvodov: presun medzi rôznymi súborovými systémami, pokus o presun netriviálnej položky, pokus o nahradenie jestvujúcej položky pri presune… Vždy by ste mali overiť návratovú hodnotu tejto metódy, aby ste si mohli byť istí, že operácia prebehla úspešne.
zdroj
– názov (a cesta) zdrojového súboru alebo priečinkacieľovýPriečinok
– cesta do cieľového priečinkatrue
vtedy a len vtedy, ak operácia presunu
prebehla úspešne, inak false
public static boolean vymaž(String názov)
Vymaže súbor alebo priečinok so zadaným názvom. Ak názov označuje priečinok, tak určený priečinok musí byť prázdny, inak nebude môcť byť vymazaný.
názov
– názov súboru alebo priečinkatrue
vtedy a len vtedy, ak operácia vymazania
prebehla úspešne, inak false
public static String dátumNaReťazec(long miliDátum)
Zostaví reťazec dátumu v predvolenom formáte zo zadaného počtu
milisekúnd počítaných od začiatku takzvanej epochy. Táto metóda je
kópiou metódy dátumNaReťazec
.
Ďalšie detaily nájdete v jej opise.
miliDátum
– dátum v milisekundách epochydátumNaReťazec(long, String)
,
reťazecNaDátum(String)
,
reťazecNaDátum(String, String)
,
naposledyUpravený(String)
public static String datumNaRetazec(long miliDátum)
Alias pre dátumNaReťazec
.
public static String dátumNaReťazec(long miliDátum, String formát)
Podľa zadaných údajov vytvorí reťazec dátumu. Prvý parameter je
počet milisekúnd počítaných od začiatku takzvanej epochy a druhý
parameter určuje požadovaný formát. Táto metóda je kópiou metódy
dátumNaReťazec
. Ďalšie
detaily nájdete v jej opise.
miliDátum
– dátum v milisekundách epochyformát
– reťazec určujúci formát dátumudátumNaReťazec(long)
,
reťazecNaDátum(String)
,
reťazecNaDátum(String, String)
,
naposledyUpravený(String)
public static String datumNaRetazec(long miliDátum, String formát)
Alias pre dátumNaReťazec
.
public static long reťazecNaDátum(String dátum)
Vráti dátum v milisekundách počítaných od začiatku takzvanej
epochy. Táto metóda je kópiou metódy reťazecNaDátum
. Ďalšie detaily
nájdete v jej opise.
dátum
– reťazec dátumu v predvolenom formátedátumNaReťazec(long)
,
dátumNaReťazec(long, String)
,
reťazecNaDátum(String, String)
,
naposledyUpravený(String, long)
public static long retazecNaDatum(String dátum)
Alias pre reťazecNaDátum
.
public static long reťazecNaDátum(String dátum, String formát)
Vráti dátum v milisekundách počítaných od začiatku takzvanej
epochy. Táto metóda je kópiou metódy reťazecNaDátum
. Ďalšie
detaily nájdete v jej opise.
dátum
– reťazec dátumu v predvolenom formáteformát
– očakávaný formát dátumudátumNaReťazec(long)
,
dátumNaReťazec(long, String)
,
reťazecNaDátum(String)
,
naposledyUpravený(String, long)
public static long retazecNaDatum(String dátum, String formát)
Alias pre reťazecNaDátum
.
public static long naposledyUpravený(String názov)
Zistí dátum a čas poslednej úpravy zadaného súboru alebo priečinka. Hodnota je udaná v milisekundách od začiatku takzvanej epochy – polnoc 1. januára 1970, pričom v našom časovom pásme to znamená hodinový posun, čiže jednu hodinu v noci rovnakého dátumu.
názov
– názov súboru alebo priečinkanaposledyUpravený(String, long)
,
dátumNaReťazec(long)
,
dátumNaReťazec(long, String)
public static long naposledyUpraveny(String názov)
Alias pre naposledyUpravený
.
public static void naposledyUpravený(String názov, long miliDátum)
Nastaví dátum a čas poslednej úpravy zadaného súboru alebo priečinka. Hodnota je udaná v milisekundách od začiatku takzvanej epochy – polnoc 1. januára 1970, pričom v našom časovom pásme to znamená hodinový posun, čiže jednu hodinu v noci rovnakého dátumu.
názov
– názov súboru alebo priečinkamiliDátum
– celočíselná hodnota reprezentujúca dátum a čas
v milisekundách meraný od začiatku epochynaposledyUpravený(String)
,
reťazecNaDátum(String)
,
reťazecNaDátum(String, String)
public static void naposledyUpraveny(String názov, long miliDátum)
Alias pre naposledyUpravený
.
public static long veľkosť(String názov)
Zistí veľkosť zadaného súboru alebo zdroja. Ak súbor alebo zdroj nemohli byť nájdené, tak metóda vráti hodnotu −1.
Tip: Ak metóda jestvuje
vráti pre zadaný názov hodnotu false
, tak
vrátená platná veľkosť je veľkosťou zdroja.
názov
– názov súboru alebo zdrojakdeJeSúbor(String)
public static byte[] kontrolnýSúčet(String názov)
Vyrobí kontrolný súčet súboru algoritmom SHA1. Tento súčet sa dá použiť na overenie toho, či bol obsah súboru zmenený. Dá sa to využiť napríklad na overenie toho, či sa zmenil obsah konfigurácie zapísanej na disku, pretože je omnoho menej pamäťovo náročné uchovávať v pamäti len kontrolný súčet (kvázi signatúru) súboru ako celý súbor.
Princíp je jednoduchý – uchovať kontrolný súčet vytvorený tesne po prečítaní a spracovaní obsahu súboru (t. j. napr. po prečítaní konfigurácie) a ten neskôr porovnavať s novým súčtom vytvoreným pri vzniku podozrenia na zmeny v súbore (napr. pri zistení zmeny dátumu a času poslednej úpravy súboru). Je minimálna šanca, že by mali súbory s rôznym obsahom a rovnakou veľkosťou rovnaké kontroné súčty (signatúry).
názov
– názov súborunull
, ak súbor nejestvuje alebo je to priečinok,
prípadne sa nedá čítaťsúčtySúZhodné(byte[], byte[])
public static byte[] kontrolnySucet(String názov)
Alias pre kontrolnýSúčet
.
public static boolean súčtySúZhodné(byte[] kontrolnýSúčet1, byte[] kontrolnýSúčet2)
Porovná zhodu dvoch kontrolných súčtov súborov. Kontrolné súčty
súborov sa dajú získať metódou: kontrolnýSúčet
.
kontrolnýSúčet1
– kontrolný súčet 1 (prvý „odtlačok“ súboru
na porovnanie oddelený od druhého v čase alebo priestore)kontrolnýSúčet2
– kontrolný súčet 2 (druhý „odtlačok“ súboru)true
ak sa súčty zhodujú; true
v opačnom prípadekontrolnýSúčet(String)
public static boolean suctySuZhodne(byte[] kontrolnýSúčet1, byte[] kontrolnýSúčet2)
Alias pre súčtySúZhodné
.
public String mennýPriestorVlastností()
Zistí aktuálne používaný menný priestor
na čítanie a zápis vlastností. Pre viac informácií o účele menného
priestoru pozri mennýPriestorVlastností(String)
.
String
alebo null
ak nie
je používaný žiadny menný priestorpublic String mennyPriestorVlastnosti()
Alias pre mennýPriestorVlastností
.
public void mennýPriestorVlastností(String novýMennýPriestor)
Stanoví nový menný priestor na čítanie a zápis vlastností.
Menný priestor slúži na oddelenie určitej skupiny vlastností od ostatných vlastností alebo skupín vlastností. Vďaka nemu je napríklad možné zapisovať vlastnosti s rovnakým názvom pre rôzne inštancie objektov.
Menný priestor nesmie byť prázdny, nesmie sa začínať alebo
končiť bodkou a nesmie obsahovať znak rovná sa. Ak chceme zrušiť
používanie menného priestoru, treba volať túto metódu s argumentom
null
.
Vo všeobecnosti menný priestor buď je, alebo nie je nastavený. V súčasnej verzii rámca je však implementovaný zásobník menných priestorov a menné priestory je možné s jednoduchosťou vnárať a vynárať.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
novýMennýPriestor
– názov nového menného priestoru alebo
null
na zrušenie používania menného priestoruGRobotException
– ak názov menného priestoru nespĺňa
niektorú požiadavkupublic void mennyPriestorVlastnosti(String novýMennýPriestor)
Alias pre mennýPriestorVlastností
.
public void vnorMennýPriestorVlastností(String vnorenýMennýPriestor)
Zmení menný priestor na čítanie a zápis vlastností tak, aby
vznikol vnorený priestor podľa konvencie opísanej nižšie.
Pozri aj informácie v opise metódy mennýPriestorVlastností
.
Upozornenie: Každá sekcia disponuje vlastným zásobníkom menných priestorov
Ak je namiesto názvu vnoreného menného priestoru zadaná
hodnota null
, tak je aktuálny menný priestor
zálohovaný do vnútorného zásobníka a zostáva nezmenený.
(Je to ekvivalentné volaniu metódy vnorMennýPriestorVlastností
bez
parametra.) Obnoviť ho môžete volaním metódy vynorMennýPriestorVlastností
.
Až do volania uvedenej metódy môžete ľubovoľne meniť menný
priestor metódou mennýPriestorVlastností
a nakoniec jej volaním obnoviť posledný
zálohovaný stav.
Ak je zadaný korektný názov vnoreného menného priestoru, tak je okrem zálohovania pozmenený aktuálny priestor takto:
.
«vnorený menný
priestor»; príklad:
starýPriestor.vnorenýPriestor
.Obnoviť predchádzajúci menný priestor môžete aj v tomto prípade
rovnako ako v prípade volania tejto metódy s hodnotou null
) – volaním metódy vynorMennýPriestorVlastností
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
Príklad:
Upozornenie: Nasledujúci príklad
staticky importuje triedy Svet
, ÚdajeUdalostí
a Math
. Je to ukážka toho, ako je
možné zjednodušiť písanie kódu v Jave. Negatívnym dôsledkom je
nižšia čitateľnosť kódu, pretože statické metódy týchto tried
(čo sú v prípade uvedených tried prakticky všetky metódy) nie sú
jednoduchým spôsobom odlíšiteľné (nemajú prefix triedy).
Tento príklad ukazuje využitie vnárania menných priestorov v rámci jednoduchej aplikácie – skicára miestností.
// Upozornenie! Tento príklad staticky importuje triedy Svet, ÚdajeUdalostí
// a Math. Je to ukážka toho, ako je možné zjednodušiť písanie kódu v Jave.
// Negatívnym dôsledkom je nižšia čitateľnosť kódu, pretože statické metódy
// týchto tried (čo sú v prípade uvedených tried prakticky všetky ich metódy)
// nie sú jednoduchým spôsobom odlíšiteľné (nemajú prefix triedy).
import
knižnica.*;import
java.io.IOException
;import
static
java.lang.Math
.*;import
static
knižnica.Svet
.*;import
static
knižnica.ÚdajeUdalostí
.*;public
class
SkicárMiestnostíextends
GRobot
{// Menovka miestnosti použitá v prípade, keď je názov miestnosti
// rovný null. To môže nastať v prípade, že používateľ zruší zadávanie
// názvu novej miestnosti – miestnosť je síce vytvorená, ale nemá meno.
private
final
static
String
bezMena ="«bez mena»"
;// Trieda zhromažďujúca informácie o miestnosti.
private
class
Miestnosťextends
Častica
{public
String
meno =null
;// Prečítanie záznamu o miestnosti z konfiguračného súboru.
public
void
čítajZoSúboru(Súbor
súbor,String
identifikátor)throws
IOException
{súbor
.vnorMennýPriestorVlastností
(identifikátor);try
{ meno = orežMeno(súbor
.čítajVlastnosť
("meno"
, meno)); x =súbor
.čítajVlastnosť
("x"
, x); y =súbor
.čítajVlastnosť
("y"
, y); uhol =súbor
.čítajVlastnosť
("uhol"
, uhol); w =súbor
.čítajVlastnosť
("šírka"
, w); h =súbor
.čítajVlastnosť
("výška"
, h); }finally
{súbor
.vynorMennýPriestorVlastností
(); } }// Zapísanie záznamu o miestnosti do konfiguračného súboru.
public
void
uložDoSúboru(Súbor
súbor,String
identifikátor)throws
IOException
{súbor
.vnorMennýPriestorVlastností
(identifikátor);try
{súbor
.zapíšVlastnosť
("meno"
, meno);súbor
.zapíšVlastnosť
("x"
, x);súbor
.zapíšVlastnosť
("y"
, y);súbor
.zapíšVlastnosť
("uhol"
, uhol);súbor
.zapíšVlastnosť
("šírka"
, w);súbor
.zapíšVlastnosť
("výška"
, h); }finally
{súbor
.vynorMennýPriestorVlastností
(); } } }// Zoznam pracovných režimov.
private
final
static
int
PASÍVNY =0
;private
final
static
int
UPRAV_MIESTNOSŤ =1
;private
final
static
int
ŤAHAJ_MIESTNOSŤ =2
;private
final
static
int
PRESUŇ_MIESTNOSŤ =3
;private
final
static
int
PRESUŇ_VŠETKO =4
;// Aktuálny pracovný režim.
private
int
režim = PASÍVNY;// Aktuálna inštancia miestnosti.
private
Miestnosť miestnosť =null
;// Pracovné súradnice myši.
private
double
myšX =0.0
, myšY =0.0
;private
double
myšZX =0.0
, myšZY =0.0
;// Zoznam vytvorených miestností.
private
final
Zoznam
<Miestnosť> miestnosti =new
Zoznam
<Miestnosť>();// Konštruktor.
private
SkicárMiestností() {super
("Skicár miestností…"
);farbaPozadia
(šedá
);farbaPlochy
(tmavošedá
);písmo
("Calibri"
,14
);hrúbkaČiary
(2.5
);skry
();// Čítanie a zápis konfigurácie. Zapisuje sa počet miestností a každá
// miestnosť je zapísaná do vnoreného menného priestoru s unikátnym
// názvom (identifikátorom).
new
ObsluhaUdalostí
() {@
Overridepublic
boolean
konfiguráciaZmenená
() {return
true
; }@
Overridepublic
void
zapíšKonfiguráciu
(Súbor
súbor)throws
IOException
{int
početMiestností = miestnosti.veľkosť
();súbor
.zapíšPrázdnyRiadokVlastností
();súbor
.zapíšVlastnosť
("početMiestností"
, početMiestností);for
(int
i =0
; i < početMiestností; ++i) {súbor
.zapíšPrázdnyRiadokVlastností
(); miestnosti.daj
(i).uložDoSúboru(súbor,"miestnosť["
+ i +"]"
); } }@
Overridepublic
void
čítajKonfiguráciu
(Súbor
súbor)throws
IOException
{int
početMiestností =súbor
.čítajVlastnosť
("početMiestností"
,0
);for
(int
i =0
; i < početMiestností; ++i) { Miestnosť miestnosť =new
Miestnosť(); miestnosť.čítajZoSúboru(súbor,"miestnosť["
+ i +"]"
); miestnosti.pridaj
(miestnosť); } } }; }// Pomocná metóda zaokrúhľujúca súradnice myši do mriežky.
private
void
zaokrúhliMyš() { myšX =polohaMyšiX
(); myšX +=najmenšieX
(); myšY =polohaMyšiY
(); myšY +=najmenšieY
(); myšX /=10
; myšX = (int
)myšX; myšX *=10
; myšY /=10
; myšY = (int
)myšY; myšY *=10
; myšX -=najmenšieX
(); myšY -=najmenšieY
(); }// Pomocná metóda zbavujúca nadbytočných medzier názov miestnosti
// (prípadne iného objektu).
private
String
orežMeno(String
meno) {return
meno.replaceAll
("\\s+"
," "
).trim
(); }// Pomocná metóda slúžiaca na zadanie alebo úpravu názvu miestnosti.
private
void
premenuj(Miestnosť miestnosť) {if
(null
!= miestnosť) {String
meno =null
== miestnosť.meno ?zadajReťazec
("Zadaj meno miestnosti"
) :upravReťazec
(miestnosť.meno,"Uprav meno miestnosti"
);if
(null
!= meno) miestnosť.meno = orežMeno(meno); } }// Časť ovládania myšou.
@
Overridepublic
void
ťahanieMyšou
() {switch
(režim) {case
PASÍVNY:// Začatie ťahania myšou so stlačeným klávesom Ctrl v pasívnom
// režime začne definíciu novej miestnosti.
if
(myš
().isControlDown
()) { zaokrúhliMyš(); miestnosť =new
Miestnosť(); miestnosť.x
= myšZX = myšX; miestnosť.y
= myšZY = myšY; miestnosti.pridaj
(miestnosť); režim = ŤAHAJ_MIESTNOSŤ;žiadajPrekreslenie
(); }// Klasické ťahanie myšou v pasívnom režime buď ťahá všetko,
// alebo miestnosť na polohe myši.
else
{ zaokrúhliMyš(); myšZX = myšX; myšZY = myšY; režim = PRESUŇ_VŠETKO;for
(Miestnosť miestnosť : miestnosti) {skočNa
(miestnosť);if
(myšVObdĺžniku
(5
+ miestnosť.w,5
+ miestnosť.h)) {this
.miestnosť = miestnosť; režim = PRESUŇ_MIESTNOSŤ;žiadajPrekreslenie
();break
; } } }break
;case
UPRAV_MIESTNOSŤ:// Ťahanie v režime úpravy miestnosti (t. j. keď je niektorá
// miestnosť označená) ukončí tento režim a vykoná to isté ako
// v pasívnom režime.
režim = PASÍVNY; miestnosť =null
; ťahanieMyšou();break
;case
ŤAHAJ_MIESTNOSŤ:// Režim ťahania novej miestnosti – mení rozmery miestnosti.
zaokrúhliMyš(); miestnosť.w =10
+abs
(myšX - myšZX); miestnosť.h =10
+abs
(myšY - myšZY);žiadajPrekreslenie
();break
;case
PRESUŇ_MIESTNOSŤ:// Režim presúvania alebo zmeny rozmeru označenej miestnosti.
zaokrúhliMyš();if
(myš
().isShiftDown
()) {// (Stlačenie klávesu Shift znamená zmenu rozmerov miestnosti.)
if
(myšX >= miestnosť.x
) miestnosť.w += myšX - myšZX;else
miestnosť.w += myšZX - myšX;if
(myšY >= miestnosť.y
) miestnosť.h += myšY - myšZY;else
miestnosť.h += myšZY - myšY; }else
{ miestnosť.x
+= myšX - myšZX; miestnosť.y
+= myšY - myšZY; } myšZX = myšX; myšZY = myšY;žiadajPrekreslenie
();break
;case
PRESUŇ_VŠETKO:// Režim presúvania všetkého definovaného…
zaokrúhliMyš();for
(Miestnosť miestnosť : miestnosti) { miestnosť.x
+= myšX - myšZX; miestnosť.y
+= myšY - myšZY; } myšZX = myšX; myšZY = myšY;žiadajPrekreslenie
();break
; } }// Časť ovládania myšou – ukončuje ťahanie myšou.
// (Kód je krátky a samovysvetľujúci.)
@
SuppressWarnings("fallthrough"
)@
Overridepublic
void
uvoľnenieTlačidlaMyši
() {switch
(režim) {case
ŤAHAJ_MIESTNOSŤ: premenuj(miestnosť);// no break – fallthrough
case
PRESUŇ_MIESTNOSŤ: režim = UPRAV_MIESTNOSŤ;žiadajPrekreslenie
();break
;case
PRESUŇ_VŠETKO: režim = PASÍVNY;break
; } }// Časť ovládania myšou – klinutie sa vykoná vtedy, keď nenastalo
// ťahanie myšou.
@
Overridepublic
void
klik
() {switch
(režim) {case
PASÍVNY:// Kliknutie v pasívnom režime so stlačeným klávesom Ctrl začne
// definíciu novej miestnosti, ale na rozdiel od ťahania myšou si
// najskôr vyžiada názov miestnosti.
if
(myš
().isControlDown
()) { zaokrúhliMyš(); miestnosť =new
Miestnosť(); miestnosť.w =20
; miestnosť.x
= myšX; miestnosť.y
= myšY; premenuj(miestnosť); miestnosti.pridaj
(miestnosť); režim = UPRAV_MIESTNOSŤ;žiadajPrekreslenie
(); }else
{// Kliknutie na niektorú miestnosť ju označí.
for
(Miestnosť miestnosť : miestnosti) {skočNa
(miestnosť);if
(myšVObdĺžniku
(5
+ miestnosť.w,5
+ miestnosť.h)) {this
.miestnosť = miestnosť; režim = UPRAV_MIESTNOSŤ;žiadajPrekreslenie
();break
; } } }break
;case
UPRAV_MIESTNOSŤ:skočNa
(miestnosť);// Kliknutie na označenú miestnosť spustí úpravu jej názvu.
if
(myšVObdĺžniku
(5
+ miestnosť.w,5
+ miestnosť.h)) { premenuj(miestnosť); }// Kliknutie mimo označenej miestnosti buď prejde do pasívneho
// režimu, alebo označí inú miestnosť (podľa polohy myši).
else
{ režim = PASÍVNY; miestnosť =null
;for
(Miestnosť miestnosť : miestnosti) {skočNa
(miestnosť);if
(myšVObdĺžniku
(5
+ miestnosť.w,5
+ miestnosť.h)) {this
.miestnosť = miestnosť; režim = UPRAV_MIESTNOSŤ;break
; } } }žiadajPrekreslenie
();break
; } }// Časovač – implementuje prekresľovanie scény.
@
Overridepublic
void
tik
() {if
(neboloPrekreslené
()) {podlaha
.vymažGrafiku
();farba
(čierna
);for
(Miestnosť miestnosť : miestnosti) {skočNa
(miestnosť);if
(miestnosť.w <0.0
) miestnosť.w =0.0
;if
(miestnosť.h <0.0
) miestnosť.h =0.0
;if
(miestnosť ==this
.miestnosť) {farba
(oranžová
);if
(0.0
== miestnosť.w &&0.0
== miestnosť.h)kruh
(2.0
);else
kresliObdĺžnik
(miestnosť.w, miestnosť.h);farba
(čierna
); }else
if
(0.0
== miestnosť.w &&0.0
== miestnosť.h)kruh
(2.0
);else
kresliObdĺžnik
(miestnosť.w, miestnosť.h); }farba
(biela
);for
(Miestnosť miestnosť : miestnosti) {skočNa
(miestnosť);if
(0.0
<= miestnosť.w &&0.0
<= miestnosť.h)vyplňObdĺžnik
(miestnosť.w, miestnosť.h); }farba
(hnedá
);for
(Miestnosť miestnosť : miestnosti) {skočNa
(miestnosť);if
(miestnosť ==this
.miestnosť) {if
(null
!= miestnosť.meno) {farba
(šedá
);if
(90.0
!= miestnosť.uhol
) {vľavo
(90
- miestnosť.uhol
);text
(miestnosť.meno);vpravo
(90
- miestnosť.uhol
); }else
text
(miestnosť.meno);farba
(hnedá
); } }else
if
(90.0
!= miestnosť.uhol
) {vľavo
(90
- miestnosť.uhol
);if
(null
== miestnosť.meno)text
(bezMena);else
text
(miestnosť.meno);vpravo
(90
- miestnosť.uhol
); }else
if
(null
== miestnosť.meno)text
(bezMena);else
text
(miestnosť.meno); }prekresli
(); } }// Ovládanie klávesnicou.
@
Overridepublic
void
stlačenieKlávesu
() {switch
(režim) {case
PASÍVNY:if
(klávesnica
().isControlDown
()) {switch
(kláves
()) {// Ctrl + kurzorové klávesy v pasívnom režime otáčajú scénu.
case
Kláves
.VPRAVO
: {double
a, b;for
(Miestnosť miestnosť : miestnosti) { a = miestnosť.x
; b = miestnosť.y
; miestnosť.x
= b; miestnosť.y
= -a; a = miestnosť.w; b = miestnosť.h; miestnosť.w = b; miestnosť.h = a;if
(klávesnica
().isShiftDown
()) miestnosť.uhol
+=90
; } }žiadajPrekreslenie
();break
;case
Kláves
.VĽAVO
: {double
a, b;for
(Miestnosť miestnosť : miestnosti) { a = miestnosť.x
; b = miestnosť.y
; miestnosť.x
= -b; miestnosť.y
= a; a = miestnosť.w; b = miestnosť.h; miestnosť.w = b; miestnosť.h = a;if
(klávesnica
().isShiftDown
()) miestnosť.uhol
-=90
; } }žiadajPrekreslenie
();break
;// Ctrl + plus v pasívnom režime zväčší všetky miestnosti
// a odsunie ich od stredu scény (pokus o jemnejšiu zmenu
// mierky – s aktívnou mriežkou to nebolo možné implementovať
// lepšie).
// Ctrl + Shift + plus urobí opak – to isté, čo Ctrl + mínus.
case
Kláves
.VK_PLUS
:case
Kláves
.VK_ADD
:if
(klávesnica
().isShiftDown
()) {for
(Miestnosť miestnosť : miestnosti) {if
(miestnosť.x
>=0.0
) miestnosť.x
-=20.0
;else
miestnosť.x
+=20.0
;if
(miestnosť.y
>=0.0
) miestnosť.y
-=20.0
;else
miestnosť.y
+=20.0
; miestnosť.w -=10.0
; miestnosť.h -=10.0
; }žiadajPrekreslenie
(); }else
{for
(Miestnosť miestnosť : miestnosti) {if
(miestnosť.x
>=0.0
) miestnosť.x
+=20.0
;else
miestnosť.x
-=20.0
;if
(miestnosť.y
>=0.0
) miestnosť.y
+=20.0
;else
miestnosť.y
-=20.0
; miestnosť.w +=10.0
; miestnosť.h +=10.0
; }žiadajPrekreslenie
(); }break
;// Ctrl + mínus v pasívnom režime zmenší všetky miestnosti
// a priblíži ich k stredu scény…
// Ctrl + Shift + mínus urobí opak – to isté, čo Ctrl + plus.
case
Kláves
.VK_MINUS
:case
Kláves
.VK_SUBTRACT
:if
(klávesnica
().isShiftDown
()) {for
(Miestnosť miestnosť : miestnosti) {if
(miestnosť.x
>=0.0
) miestnosť.x
+=20.0
;else
miestnosť.x
-=20.0
;if
(miestnosť.y
>=0.0
) miestnosť.y
+=20.0
;else
miestnosť.y
-=20.0
; miestnosť.w +=10.0
; miestnosť.h +=10.0
; }žiadajPrekreslenie
(); }else
{for
(Miestnosť miestnosť : miestnosti) {if
(miestnosť.x
>=0.0
) miestnosť.x
-=20.0
;else
miestnosť.x
+=20.0
;if
(miestnosť.y
>=0.0
) miestnosť.y
-=20.0
;else
miestnosť.y
+=20.0
; miestnosť.w -=10.0
; miestnosť.h -=10.0
; }žiadajPrekreslenie
(); }break
;// Ctrl + hviezdička v pasívnom režime zdvojnásobí
// mierku scény.
// Ctrl + Shift + hviezdička urobí opak, len s vyžiadaním
// potvrdenia akcie – to isté, čo Ctrl + lomka.
case
Kláves
.VK_ASTERISK
:case
Kláves
.VK_MULTIPLY
:if
(klávesnica
().isShiftDown
()) {if
(ÁNO
==otázka
("Určite chcete znížiť "
+"rozlíšenie plánu?"
)) {for
(Miestnosť miestnosť : miestnosti) { miestnosť.x
/=2.0
; miestnosť.y
/=2.0
; miestnosť.w /=2.0
; miestnosť.h /=2.0
; }žiadajPrekreslenie
(); } }else
{for
(Miestnosť miestnosť : miestnosti) { miestnosť.x
*=2.0
; miestnosť.y
*=2.0
; miestnosť.w *=2.0
; miestnosť.h *=2.0
; }žiadajPrekreslenie
(); }break
;// Ctrl + lomka v pasívnom režime zmenší mierku scény na
// polovicu, avšak predtým si vyžiada potvrdenie akcie,
// pretože hrozí deformácia scény mimo mriežku (toto nie
// je v tejto verzii ošetrené).
// Ctrl + Shift + lomka urobí opak – to isté, čo
// Ctrl + hviezdička.
case
Kláves
.VK_SLASH
:case
Kláves
.VK_DIVIDE
:if
(klávesnica
().isShiftDown
()) {for
(Miestnosť miestnosť : miestnosti) { miestnosť.x
*=2.0
; miestnosť.y
*=2.0
; miestnosť.w *=2.0
; miestnosť.h *=2.0
; }žiadajPrekreslenie
(); }else
{if
(ÁNO
==otázka
("Určite chcete znížiť "
+"rozlíšenie plánu?"
)) {for
(Miestnosť miestnosť : miestnosti) { miestnosť.x
/=2.0
; miestnosť.y
/=2.0
; miestnosť.w /=2.0
; miestnosť.h /=2.0
; }žiadajPrekreslenie
(); } }break
; } }// Kurzorové klávesy (bez Ctrl) v pasívnom režime presúvajú scénu.
else
{switch
(kláves
()) {case
Kláves
.HORE
:for
(Miestnosť miestnosť : miestnosti) miestnosť.y
+=10
;žiadajPrekreslenie
();break
;case
Kláves
.DOLE
:for
(Miestnosť miestnosť : miestnosti) miestnosť.y
-=10
;žiadajPrekreslenie
();break
;case
Kláves
.VPRAVO
:for
(Miestnosť miestnosť : miestnosti) miestnosť.x
+=10
;žiadajPrekreslenie
();break
;case
Kláves
.VĽAVO
:for
(Miestnosť miestnosť : miestnosti) miestnosť.x
-=10
;žiadajPrekreslenie
();break
; } }break
;case
UPRAV_MIESTNOSŤ:// Režim úpravy miestnosti…
if
(klávesnica
().isShiftDown
()) {// Shift + kurzorové klávesy menia veľkosť
// označenej miestnosti.
switch
(kláves
()) {case
Kláves
.HORE
: miestnosť.h +=10
;žiadajPrekreslenie
();break
;case
Kláves
.DOLE
: miestnosť.h -=10
;žiadajPrekreslenie
();break
;case
Kláves
.VPRAVO
: miestnosť.w +=10
;žiadajPrekreslenie
();break
;case
Kláves
.VĽAVO
: miestnosť.w -=10
;žiadajPrekreslenie
();break
; } }else
if
(klávesnica
().isControlDown
()) {// Ctrl + kurzorové klávesy menia orientáciu textu názvu
// označenej miestnosti. Klávesy vpravo a vľavo otáčajú
// text o 90°, klávesy hore a dole jemnejšie – o 15°.
switch
(kláves
()) {case
Kláves
.HORE
: miestnosť.uhol
-=15
;žiadajPrekreslenie
();break
;case
Kláves
.DOLE
: miestnosť.uhol
+=15
;žiadajPrekreslenie
();break
;case
Kláves
.VPRAVO
: miestnosť.uhol
+=90
;žiadajPrekreslenie
();break
;case
Kláves
.VĽAVO
: miestnosť.uhol
-=90
;žiadajPrekreslenie
();break
; } }else
{// Kurzorové klávesy (bez Ctrl a Shift) presúvajú
// označenú miestnosť.
switch
(kláves
()) {case
Kláves
.HORE
: miestnosť.y
+=10
;žiadajPrekreslenie
();break
;case
Kláves
.DOLE
: miestnosť.y
-=10
;žiadajPrekreslenie
();break
;case
Kláves
.VPRAVO
: miestnosť.x
+=10
;žiadajPrekreslenie
();break
;case
Kláves
.VĽAVO
: miestnosť.x
-=10
;žiadajPrekreslenie
();break
;// Klávesy Escape a Enter ukončia režim úprav – zrušia
// označenie miestnosti.
case
Kláves
.ESCAPE
:case
Kláves
.ENTER
: režim = PASÍVNY; miestnosť =null
;žiadajPrekreslenie
();break
;// Kláves Delete si vyžiada potvrdenie na vymazanie
// miestnosti a v prípade pozitívnej odpovede ju vymaže.
case
Kláves
.DELETE
:if
(ÁNO
==otázka
("Určite chcete vymazať miestnosť?"
)) { miestnosti.odober
(miestnosť); režim = PASÍVNY; miestnosť =null
;žiadajPrekreslenie
(); }break
; } }break
; } }// Vstupný bod programu.
public
static
void
main(String
[] args) {// (Poznámka: Okrem konštruktora príkladu sú všetky metódy
// v tomto bloku statickými metódami sveta – pozri upozornenie
// na začiatku príkladu.)
nekresli
();použiKonfiguráciu
("SkicárMiestností.cfg"
);new
SkicárMiestností();if
(prvéSpustenie
()) {zbaľ
();vystreď
(); }spustiČasovač
(); } }
Ukážka aplikácie:
Ukážka vzhľadu miniaplikácie „Skicár
miestností.“
vnorenýMennýPriestor
– názov vnoreného menného priestoru
alebo null
na zálohovanie aktuálneho menného
priestoruGRobotException
– ak názov vnoreného menného priestoru
nespĺňa niektorú požiadavku – pozri informácie v opise metódy
mennýPriestorVlastností
public void vnorMennyPriestorVlastnosti(String vnorenýMennýPriestor)
Alias pre vnorMennýPriestorVlastností
.
public void vnorMennýPriestorVlastností()
Zálohuje aktuálny menný priestor na čítanie a zápis
vlastností do vnútorného zásobníka. Obnoviť ho môžete volaním
metódy vynorMennýPriestorVlastností
.
Upozornenie: Každá sekcia disponuje vlastným zásobníkom menných priestorov
Pozri aj informácie a príklad v opise metódy vnorMennýPriestorVlastností
.
public void vnorMennyPriestorVlastnosti()
Alias pre vnorMennýPriestorVlastností
.
public void vynorMennýPriestorVlastností()
Obnoví posledný zálohovaný menný priestor na čítanie a zápis
vlastností z vnútorného zásobníka. Zásobník nesmie byť prázdny,
inak vznikne výnimka. Pozri aj informácie v opise metódy vnorMennýPriestorVlastností
.
Upozornenie: Každá sekcia disponuje vlastným zásobníkom menných priestorov
Pozri aj informácie a príklad v opise metódy vnorMennýPriestorVlastností
.
EmptyStackException
– ak je vnútorný zásobník
menných priestorov prázdnypublic void vynorMennyPriestorVlastnosti()
Alias pre vynorMennýPriestorVlastností
.
public static String predvolenáCestaDialógov()
public static String predvolenaCestaDialogov()
Alias pre predvolenáCestaDialógov
.
public static void predvolenáCestaDialógov(String cesta)
Nastaví novú predvolenú cestu (systémových pomocných)
dialógov na otvorenie
a uloženie súborov. Ak je
zadaná hodnota rovná null
(alebo prázdny reťazec),
tak to znamená, že dialógy nemajú žiadnu predvolenú cestu a budú
otvorené na umiestnení, ktoré určí operačný systém.
Tip: Neoficiálnym trikom na voľbu
priečinka aktuálneho pri spustení aplikácie (ktorý nie je
podpoprovaný všetkými operačnými systémami) je zadanie reťazca
"."
(ktorý má v podporovaných OS presne význam
aktuálneho priečinka).
public static void predvolenaCestaDialogov(String cesta)
Alias pre predvolenáCestaDialógov
.
public static String dialógOtvoriť(String titulok)
Otvorí používateľský dialóg na otvorenie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom. Ak používateľ dialóg zruší, návratová hodnota je
null
. Programátor zadáva titulok dialógu, s ktorým
bude dialóg otvorený používateľovi.
titulok
– titulok dialógunull
public static String dialogOtvorit(String titulok)
Alias pre dialógOtvoriť
.
public static String dialógOtvoriť(String titulok, String predvolenýNázovSúboru, String... filtre)
Otvorí používateľský dialóg na otvorenie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom.
Ak používateľ dialóg zruší, návratová hodnota je null
.
Programátor zadáva titulok dialógu, predvolený názov súboru,
s ktorými bude dialóg otvorený používateľovi a prípadne aj jeden
alebo viacero filtrov obsahujúcich šablóny masiek, ktoré určia
súbory, ktoré sú v dialógu buď viditeľné (v OS Windows), alebo
dovolené zvoliť (v macOS, predtým OS X a Mac OS – v tomto systéme
sú vždy viditeľné všetky bežne zobrazované súbory, ale tie, ktoré
nevyhovujú kritériám filtra sú „šedé“ – používateľovi nie je
umožnené ich zvoliť).
Filtre sú zadávané vo forme reťazca, ktorý bude k dispozícii na
výber v dialógu, a ktorý musí obsahovať aspoň jeden reťazec v tvare
*.
«prípona»«oddeľovač», pričom platnými
oddeľovačmi sú bodkočiarka (;
), čiarka (,
), zvislá
čiara (|
), koncová zátvorka ()
) a elipsa
(…
), inak bude filter ignorovaný. Príkladom platného filtra
môže byť: "Obrázky vo formátoch GIF, PNG a JPEG (*.gif,
*.png, *.jpeg…)"
Poznámka: Filtre sú dostupné iba pri
tejto verzii metódy z dôvodu rozlíšiteľnosti dvoch verzií metódy.
Ide o principiálne obmedzenie jazyka Java. Ak si neželáte zadať
predvolený názov súboru, použite hodnotu null
. Z dôvodu
použitia filtrov otvára táto verzia metódy principiálne iný typ
dialógu ako jej staršia verzia.
titulok
– titulok dialógupredvolenýNázovSúboru
– predvolený názov súboru poskytovaný
dialógom, ktorý je v niektorých operačných systémoch
(konkrétne macOS – predtým OS X a Mac OS) žiaľ aj tak
ignorovaný (pri dialógu slúžiacom na voľbu súboru na uloženie
to neplatí)filtre
– jeden alebo viac nepovinných reťazcov filtrov
(obsahujúcich masky) určujúcich, ktoré súbory majú byť v dialógu
zobrazené (v OS Windows) alebo dovolené vybrať (v macOS –
predtým OS X a Mac OS)null
public static String dialogOtvorit(String titulok, String predvolenýNázovSúboru, String... filtre)
Alias pre dialógOtvoriť
.
public static String dialógUložiť(String titulok)
Otvorí používateľský dialóg na uloženie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom. Ak používateľ dialóg zruší, návratová hodnota je
null
. Programátor zadáva titulok dialógu, s ktorým
bude dialóg otvorený používateľovi.
titulok
– titulok dialógunull
public static String dialogUlozit(String titulok)
Alias pre dialógUložiť
.
public static String dialógUložiť(String titulok, String predvolenýNázovSúboru, String... filtre)
Otvorí používateľský dialóg na uloženie súboru, ktorý vráti
reťazec s úplnou cestou a názvom súboru zvoleného v dialógu
používateľom. Ak používateľ dialóg zruší, návratová hodnota je
null
. Programátor zadáva titulok dialógu, predvolený
názov súboru, s ktorými bude dialóg otvorený používateľovi
a prípadne aj jeden alebo viacero filtrov obsahujúcich šablóny
masiek, ktoré určia súbory, ktoré sú v dialógu buď viditeľné
(v OS Windows), alebo dovolené zvoliť (v macOS, predtým OS X
a Mac OS – v tomto systéme sú vždy viditeľné všetky bežne
zobrazované súbory, ale tie, ktoré nevyhovujú kritériám filtra
sú „šedé“ – používateľovi nie je umožnené ich zvoliť).
Filtre sú zadávané vo forme reťazca, ktorý bude k dispozícii na
výber v dialógu, a ktorý musí obsahovať aspoň jeden reťazec v tvare
*.
«prípona»«oddeľovač», pričom platnými
oddeľovačmi sú bodkočiarka (;
), čiarka (,
), zvislá
čiara (|
), koncová zátvorka ()
) a elipsa
(…
), inak bude filter ignorovaný. Príkladom platného filtra
môže byť: "Obrázky vo formátoch GIF, PNG a JPEG (*.gif,
*.png, *.jpeg…)"
Poznámka: Filtre sú dostupné iba pri
tejto verzii metódy z dôvodu rozlíšiteľnosti dvoch verzií metódy.
Ide o principiálne obmedzenie jazyka Java. Ak si neželáte zadať
predvolený názov súboru, použite hodnotu null
. Z dôvodu
použitia filtrov otvára táto verzia metódy principiálne iný typ
dialógu ako jej staršia verzia.
titulok
– titulok dialógupredvolenýNázovSúboru
– predvolený názov súboru
poskytovaný dialógomfiltre
– jeden alebo viac nepovinných reťazcov filtrov
(obsahujúcich masky) určujúcich, ktoré súbory majú byť v dialógu
zobrazené (v OS Windows) alebo dovolené vybrať (v macOS –
predtým OS X a Mac OS)null
public static String dialogUlozit(String titulok, String predvolenýNázovSúboru, String... filtre)
Alias pre dialógUložiť
.
public static String kdeJeSúbor(String názovSúboru)
Vyhľadá skutočné umiestnenie súboru určeného na čítanie alebo
vráti hodnotu null
, ak súbor nebol nájdený. Súbor je
prednostne vyhľadaný v rámci aktuálneho umiestnenia (cesty)
určeného na čítanie (a zápis) súborov. Ak nie je nájdený, tak je
prehľadaný zoznam ciest classpath
. Ak i tak nie je
nájdený, tak je nakoniec prehľadaný aktuálny balíček .jar
.
Ak súbor nie je nájdený ani tam, tak je vrátená hodnota
null
. V prípade, že sa súbor nachádza v .jar
súbore, tak je vrátená cesta v nasledujúcom tvare:
jar:file:
«úplná cesta k .jar
súboru»!«cesta a názov súboru v rámci
.jar súboru»
Poznámka: Pre používateľov OS Windows
môže byť neštandardné, že obe cesty súvisiace s .jar
súborom budú v úlohe oddeľovačov priečinkov lomky (/
)
obsahovať namiesto spätných lomiek (\
) a zároveň
sa budú lomkou aj začínať (a to aj napriek tomu, že za touto
prvou lomkou bude uvedená jednotka, na ktorej je .jar
súbor umiestnený).
názovSúboru
– názov súboru (určeného na čítanie)null
, ak
súbor nebol nájdený na žiadnej z prehľadávaných lokalítjestvuje(String)
public String kdeJeSubor(String názovSúboru)
Alias pre kdeJeSúbor
.
public void pripojArchív(Archív archív)
Priradí k tomuto súboru zadanú inštanciu archívu. Používanie inštancie sa nezmení, ale najbližšie volanie
metód otvorNa…
(čítanie alebo zápis; všetky verzie)
neotvorí súbor na disku (alebo inom zdroji), ale vyhľadá alebo
vytvorí položku v archíve. Archív musí byť buď vopred otvorený na
čítanie alebo zápis (podľa toho, čo chceme vykonať), alebo musí byť
povolené automatické otvorenie archívu. Inak vznikne pri pokuse o otvorenie
súboru (v tomto prípade prenesene položky archívu) výnimka
(GRobotException
; archiveNotOpenForReading
alebo archiveNotOpenForWriting
).
Hodnota null
parametra archív
znamená, že
prípadný pripojený archív má byť od tohto súboru odpojený a súbor
má opäť fungovať samostatne (zapisujúc a čítajúc údaje priamo
z pevného disku, prípadne zo zdrojov).
Poznámka: Ak je dôsledkom volania tejto metódy zmena (t. j. je pripojený nový/odlišný archív alebo je jestvujúci archív odpojený), tak metóda automaticky zavrie prípadný otvorený súbor alebo položku archívu.
Pripojenie archívu uľahčuje prácu s textovými (potenciálne konfiguračnými) súbormi uloženými v archíve, má to viacero výhodných dôsledkov, ale sú tu aj určité obmedzenia:
otvorNaZápis
(
"názov.txt"
,
true
)
GRobotException
s jazykovým
identifikátorom duplicateEntry
(Položka „názov
položky“ už v archíve jestvuje.)Uvedené obmedzenia súvisia s princípom práce s archívom. Archív otvorený na zápis je vždy prázdny, pripravený prijímať (a baliť) nové položky. Nedá sa otvoriť jestvujúci archív na zápis a v ňom upravovať jestvujúce položky. To by sme museli najprv archív rozbaliť do dočasného priečinka, vykonať želané zmeny a archív opätovne zbaliť. Ak jestvuje v archíve otvorenom na zápis určitá položka, znamená to, že bola v tomto cykle zápisu už zbalená a nedá sa meniť.
archív
– inštancia archívu na pripojeniearchívPriradený()
,
otvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
otvorNaČítanie(String)
,
otvorNaČítanie(String, String)
,
zavri()
,
close()
public void pripojArchiv(Archív archív)
Alias pre pripojArchív
.
public boolean archívPriradený()
Zistí, či je k tomuto súboru pripojený archív.
true
ak je archív priradený, false
v opačnom prípadepripojArchív(Archív)
public boolean archivPriradeny()
Alias pre archívPriradený
.
public void otvorNaZápis(String názovSúboru) throws IOException
Otvorí zadaný súbor na zápis. Ak súbor jestvuje, bude prepísaný. Metóda použije kódovanie UTF-8.
Poznámka: V prípade, že plánujete používať
mechanizmus vlastností, venujte pozornosť upozorneniu pri metóde
zapíšVlastnosť
!
Poznámka: Pozrite si aj informácie
uvedené v opise metódy pripojArchív
.
Poznámka: Ak bude súbor, ktorý zapisujete
čítaný iným softvérom, zvážte uloženie značky BOM (byte order mark)
na začiatok súboru. Pozri metódu zapíšBOM
,
ktorá túto možnosť poskytuje. Niektoré softvéry sa bez prítomnosti
tejto značky na začiatku súboru nevedia orientovať (takže v podstate
jej prítomnosť vyžadujú).
názovSúboru
– názov súboru, ktorý má byť otvorený na zápisIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak je meno súboru zamlčané
(null
)otvorNaČítanie(String)
,
otvorNaČítanie(String, String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
zavri()
,
close()
public void otvorNaZapis(String názovSúboru) throws IOException
Alias pre otvorNaZápis
.
IOException
public void otvorNaZápis(String názovSúboru, boolean pripojiť) throws IOException
Otvorí zadaný súbor na zápis. Ak je druhý parameter true
, zapisovaný obsah bude pripojený k obsahu jestvujúceho
súboru, inak bude obsah súboru prepísaný. Metóda použije kódovanie
UTF-8.
Poznámka: Pozrite si aj informácie
uvedené v opise metódy pripojArchív
.
Upozornenie: V prípade, že plánujete
používať mechanizmus vlastností, nepoužívajte túto metódu
so zadanou hodnotou true
druhého argumentu!
Pozor! Pripájanie (pozri parameter
pripojiť
) nesmie byť použité s konfiguračnými súbormi,
pretože tieto by sa stali pri ďalšom otvorení nečitateľné!
Poznámka: Ak bude súbor, ktorý zapisujete
čítaný iným softvérom, zvážte uloženie značky BOM (byte order mark)
na začiatok súboru. Pozri metódu zapíšBOM
,
ktorá túto možnosť poskytuje. Niektoré softvéry sa bez prítomnosti
tejto značky na začiatku súboru nevedia orientovať (takže v podstate
jej prítomnosť vyžadujú).
názovSúboru
– názov súboru, ktorý má byť otvorený na zápispripojiť
– ak je hodnota tohto parametra true
,
zapisovaný obsah bude pripojený na koniec jestvujúceho súboru
(nesmie byť použité s konfiguračnými súbormi‼)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak je meno súboru zamlčané
(null
)otvorNaČítanie(String)
,
otvorNaČítanie(String, String)
,
otvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
zavri()
,
close()
public void otvorNaZapis(String názovSúboru, boolean pripojiť) throws IOException
Alias pre otvorNaZápis
.
IOException
public void otvorNaZápis(String názovSúboru, String kódovanie, boolean pripojiť) throws IOException
Otvorí zadaný súbor na zápis. Ak je druhý parameter true
, zapisovaný obsah bude pripojený k obsahu jestvujúceho
súboru, inak bude obsah súboru prepísaný.
Poznámka: Pozrite si aj informácie
uvedené v opise metódy pripojArchív
.
Upozornenie: V prípade, že plánujete
používať mechanizmus vlastností, nepoužívajte túto metódu
so zadanou hodnotou true
druhého argumentu!
Pozor! Pripájanie (pozri parameter
pripojiť
) nesmie byť použité s konfiguračnými súbormi,
pretože tieto by sa stali pri ďalšom otvorení nečitateľné!
Poznámka: Ak bude súbor, ktorý zapisujete
čítaný iným softvérom, zvážte uloženie značky BOM (byte order mark)
na začiatok súboru. Pozri metódu zapíšBOM
,
ktorá túto možnosť poskytuje. Niektoré softvéry sa bez prítomnosti
tejto značky na začiatku súboru nevedia orientovať (takže v podstate
jej prítomnosť vyžadujú).
názovSúboru
– názov súboru, ktorý má byť otvorený na zápiskódovanie
– typ kódovania, ktorý má byť použitý na uloženie
textového súborupripojiť
– ak je hodnota tohto parametra true
,
zapisovaný obsah bude pripojený na koniec jestvujúceho súboru
(nesmie byť použité s konfiguračnými súbormi‼)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak je meno súboru zamlčané
(null
)otvorNaČítanie(String)
,
otvorNaČítanie(String, String)
,
otvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
zavri()
,
close()
public void otvorNaZapis(String názovSúboru, String kódovanie, boolean pripojiť) throws IOException
Alias pre otvorNaZápis
.
IOException
public void otvorNaČítanie(String názovSúboru) throws IOException
Otvorí zadaný súbor s kódovaním UTF-8 na čítanie. Ak súbor
nejestvuje, vznikne výnimka. Ďalšie informácie sú v opise verzie
tejto metódy prijímajúcej dva parametre: otvorNaČítanie
.
názovSúboru
– názov súboru, ktorý má byť otvorený na čítanieIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak je meno súboru zamlčané
(null
) alebo súbor nejestvujeotvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
otvorNaČítanie(String, String)
,
zavri()
,
close()
public void otvorNaCitanie(String názovSúboru) throws IOException
Alias pre otvorNaČítanie
.
IOException
public void otvorNaČítanie(String názovSúboru, String kódovanie) throws IOException
Otvorí zadaný súbor na čítanie. Ak súbor nejestvuje, vznikne výnimka.
Poznámky a upozornenia: Ak bol z projektu
vytvorený .jar
súbor (spustiteľný balíček), tak sa
v prípade spustenia projektu cez tento súbor pokúsi metóda hľadať
požadovaný súbor aj v .jar
balíčku. Prednosť však majú
súbory umiestnené mimo balíčka. So súbormi na zápis to neplatí –
tie nie je možné zapisovať do .jar
balíčkov.
V súčasnej verzii rámca metóda hľadá súbory na čítanie aj v rámci
zoznamu ciest classpath
. To
znamená, že súbor, ktorý ste prvý raz prečítali, nemusí byť tým
istým súborom ako ten, do ktorého budete zapisovať. Na overenie
prítomnosti súboru v aktuálnom umiestnení na zápis môžete použiť
metódu jestvuje
a na zistenie
umiestnenia súboru na čítanie môžete použiť metódu
kdeJeSúbor
.
názovSúboru
– názov súboru, ktorý má byť otvorený na čítaniekódovanie
– typ kódovania textového súboruIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak je meno súboru zamlčané
(null
) alebo súbor nejestvujeotvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
otvorNaČítanie(String)
,
zavri()
,
close()
public void otvorNaCitanie(String názovSúboru, String kódovanie) throws IOException
Alias pre otvorNaČítanie
.
IOException
public void zavri() throws IOException
Zavrie súbor, ktorý bol predtým otvorený na čítanie alebo zápis.
Poznámka: Pozrite si aj informácie
uvedené v opise metódy pripojArchív
.
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiotvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
otvorNaČítanie(String)
,
otvorNaČítanie(String, String)
,
close()
public void close() throws IOException
Zavrie súbor, ktorý bol predtým otvorený na čítanie alebo zápis. Táto metóda je definovaná ako
súčasť implementácie rozhrania Closeable
.
Vnútorne volá metódu zavri
.
close
v rozhraní Closeable
close
v rozhraní AutoCloseable
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiotvorNaZápis(String)
,
otvorNaZápis(String, boolean)
,
otvorNaZápis(String, String, boolean)
,
otvorNaČítanie(String)
,
otvorNaČítanie(String, String)
,
zavri()
public boolean vlastnosťJestvuje(String názov) throws IOException
Zistí, či je v súbore otvorenom na čítanie (vlastností) definovaná zadaná vlastnosť. Táto metóda slúži na rozlíšenie špeciálnych prípadov pri čítaní konfigurácie. Každá metóda slúžiaca na čítanie vlastností musí mať určenú predvolenú hodnotu, ktorá je použitá v prípade, že vlastnosť v súbore nejestvuje, avšak niekedy môže nedefinovaná vlastnosť určovať špeciálny prípad konfigurácie, ktorý je potrebné rozlíšiť.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)true
alebo false
podľa toho, či je
vlastnosť súbore definovaná alebo nieIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic boolean vlastnostJestvuje(String názov) throws IOException
Alias pre vlastnosťJestvuje
.
IOException
public boolean vlastnosťExistuje(String názov) throws IOException
Alias pre vlastnosťJestvuje
.
IOException
public boolean vlastnostExistuje(String názov) throws IOException
Alias pre vlastnosťJestvuje
.
IOException
public String čítajVlastnosť(String názov, String predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare reťazca.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáString
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic String citajVlastnost(String názov, String predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public StringBuffer čítajVlastnosť(String názov, StringBuffer predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare reťazca, pričom výsledok je
vrátený v objekte typu StringBuffer
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáStringBuffer
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic StringBuffer citajVlastnost(String názov, StringBuffer predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Long čítajVlastnosť(String názov, Long predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare celého čísla.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdená alebo pri prevode textu na celé
číslo nastala chybaLong
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Long citajVlastnost(String názov, Long predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Integer čítajVlastnosť(String názov, Integer predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare celého čísla.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
Poznámka: Pred verziou 1.85 bolo
hodnoty s údajovým typom int
alebo Integer
potrebné prevádzať z typu Long
. Pre primitívny typ int
to
znamenalo použiť nasledujúci zápis:
premenná = súbor.čítajVlastnosť("názovVlastnosti",
(long)predvolenáHodnota).intValue();
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdená alebo pri prevode textu na celé
číslo nastala chybaInteger
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Integer citajVlastnost(String názov, Integer predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Float čítajVlastnosť(String názov, Float predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare reálneho čísla.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
Poznámka: Pred verziou 1.85 bolo
hodnoty s údajovým typom float
alebo Float
potrebné prevádzať z typu Double
. Pre primitívny typ float
to
znamenalo použiť nasledujúci zápis:
premenná = súbor.čítajVlastnosť("názovVlastnosti",
(double)predvolenáHodnota).floatValue();
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdená alebo pri prevode textu na
reálne číslo nastala chybaFloat
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Float citajVlastnost(String názov, Float predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Double čítajVlastnosť(String názov, Double predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare reálneho čísla.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdená alebo pri prevode textu na
reálne číslo nastala chybaDouble
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Double citajVlastnost(String názov, Double predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Boolean čítajVlastnosť(String názov, Boolean predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti v tvare logickej hodnoty true
/ false
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáBoolean
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Boolean citajVlastnost(String názov, Boolean predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public int[] čítajVlastnosť(String názov, int[] predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti do celočíselného poľa typu int
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– pole, ktoré je použité na vytvorenie
„predvolenej hodnoty,“ čo je v tomto prípade nové pole, ktoré
je kópiou tohto argumentu – čiže pole s rovnakou dĺžkou
a rovnakými hodnotami jednotlivých prvkov; toto pole je
vytvorené a vrátené v prípade, že vlastnosť s uvedeným názvom
nebola v textovom súbore nájdená alebo je hodnota vlastnosti
prázdnaint
, ktoré obsahuje
toľko prvkov, koľko celých čísiel sa z hodnoty vlastnosti
podarilo úspešne previesť (proces prevodu textov na celé čísla
sa zastavuje pri prvom neúspechu) alebo kópia poľa zadaného do
predvolenej hodnotyIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic int[] citajVlastnost(String názov, int[] predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public float[] čítajVlastnosť(String názov, float[] predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti do poľa reálnych čísel typu float
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– pole, ktoré je použité na vytvorenie
„predvolenej hodnoty,“ čo je v tomto prípade nové pole, ktoré
je kópiou tohto argumentu – čiže pole s rovnakou dĺžkou
a rovnakými hodnotami jednotlivých prvkov; toto pole je
vytvorené a vrátené v prípade, že vlastnosť s uvedeným názvom
nebola v textovom súbore nájdená alebo je hodnota vlastnosti
prázdnafloat
, ktoré obsahuje
toľko prvkov, koľko reálnych čísiel sa z hodnoty vlastnosti
podarilo úspešne previesť (proces prevodu textov na reálne
čísla sa zastavuje pri prvom neúspechu) alebo kópia poľa
zadaného do predvolenej hodnotyIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic float[] citajVlastnost(String názov, float[] predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public long[] čítajVlastnosť(String názov, long[] predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti do celočíselného poľa typu long
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– pole, ktoré je použité na vytvorenie
„predvolenej hodnoty,“ čo je v tomto prípade nové pole, ktoré
je kópiou tohto argumentu – čiže pole s rovnakou dĺžkou
a rovnakými hodnotami jednotlivých prvkov; toto pole je
vytvorené a vrátené v prípade, že vlastnosť s uvedeným názvom
nebola v textovom súbore nájdená alebo je hodnota vlastnosti
prázdnalong
, ktoré obsahuje
toľko prvkov, koľko celých čísiel sa z hodnoty vlastnosti
podarilo úspešne previesť (proces prevodu textov na celé čísla
sa zastavuje pri prvom neúspechu) alebo kópia poľa zadaného do
predvolenej hodnotyIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic long[] citajVlastnost(String názov, long[] predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public double[] čítajVlastnosť(String názov, double[] predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti do poľa reálnych čísel typu double
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– pole, ktoré je použité na vytvorenie
„predvolenej hodnoty,“ čo je v tomto prípade nové pole, ktoré
je kópiou tohto argumentu – čiže pole s rovnakou dĺžkou
a rovnakými hodnotami jednotlivých prvkov; toto pole je
vytvorené a vrátené v prípade, že vlastnosť s uvedeným názvom
nebola v textovom súbore nájdená alebo je hodnota vlastnosti
prázdnadouble
, ktoré obsahuje
toľko prvkov, koľko reálnych čísiel sa z hodnoty vlastnosti
podarilo úspešne previesť (proces prevodu textov na reálne
čísla sa zastavuje pri prvom neúspechu) alebo kópia poľa
zadaného do predvolenej hodnotyIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic double[] citajVlastnost(String názov, double[] predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public boolean[] čítajVlastnosť(String názov, boolean[] predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti do poľa logických hodnôt typu boolean
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– pole, ktoré je použité na vytvorenie
„predvolenej hodnoty,“ čo je v tomto prípade nové pole, ktoré
je kópiou tohto argumentu – čiže pole s rovnakou dĺžkou
a rovnakými hodnotami jednotlivých prvkov; toto pole je
vytvorené a vrátené v prípade, že vlastnosť s uvedeným názvom
nebola v textovom súbore nájdená alebo je hodnota vlastnosti
prázdnaboolean
, ktoré obsahuje
toľko prvkov, koľko logických hodnôt sa podarilo z vlastnosti
úspešne prečítať alebo kópia poľa zadaného do predvolenej
hodnotyIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic boolean[] citajVlastnost(String názov, boolean[] predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public char[] čítajVlastnosť(String názov, char[] predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti do poľa znakov (char
[]
). Metóda vracia nové pole znakov, ktorého prvky tvoria všetky
znaky získané z hodnoty tejto vlastnosti.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– pole, ktoré je použité na vytvorenie
„predvolenej hodnoty,“ čo je v tomto prípade nové pole znakov,
ktoré je kópiou tohto argumentu; toto pole je vytvorené
a vrátené v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáchar
[]
), ktoré
tvoria hodnotu tejto vlastnosti, prípadne kópia poľa zadaného
do predvolenej hodnoty (ak vlastnosť v otvorenom súbore
nejestvuje)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic char[] citajVlastnost(String názov, char[] predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Bod čítajVlastnosť(String názov, Poloha predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti ako objekt, ktorý je implementáciou
rozhrania Poloha
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáPoloha
(konkrétne typ Bod
)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Bod citajVlastnost(String názov, Poloha predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Point2D.Double čítajVlastnosť(String názov, Point2D predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti ako objekt, ktorý je odvodený od typu
Point2D
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáPoint2D
(konkrétne typ Point2D.Double
)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Point2D.Double citajVlastnost(String názov, Point2D predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Farba čítajVlastnosť(String názov, Farebnosť predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti ako objekt, ktorý je implementáciou
rozhrania Farebnosť
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáFarebnosť
(konkrétne typ Farba
)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Farba citajVlastnost(String názov, Farebnosť predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Farba čítajVlastnosť(String názov, Color predvolenáHodnota) throws IOException
Číta hodnotu vlastnosti ako objekt, ktorý je odvodený od typu
Color
.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)predvolenáHodnota
– predvolená hodnota vlastnosti, ktorá je
vrátená v prípade, že vlastnosť s uvedeným názvom nebola
v textovom súbore nájdenáColor
(konkrétne typ Farba
)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak názov vlastnosti nespĺňa niektorú
požiadavku alebo súbor nie je otvorený na čítanie, prípadne
súbor obsahuje chybupublic Farba citajVlastnost(String názov, Color predvolenáHodnota) throws IOException
Alias pre čítajVlastnosť
.
IOException
public Zoznam<String> zoznamVlastností() throws IOException
Vráti zoznam vlastností definovaných v aktuálnej sekcii
konfigurácie. (Pozri aj: aktívnaSekcia
.)
Všetky názvy sú vrátené v úplnom znení, to jest vrátane
prípadných menných priestorov, do ktorých patria. (Pozri aj:
mennýPriestorVlastností
.)
Zmeny vykonané vo vrátenom zozname nemajú žiadny vplyv na
skutočné vlastnosti v rámci konfigurácie. Detekciu prípadných
menných priestorov musí vykonať používateľ (rámca).
Metóda identifikuje a v zozname vracia aj dva špeciálne prípady:
";"
(čo nie je povolené),""
(čo tiež nie je povolené).IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítanie,
prípadne obsahuje chybuaktívnaSekcia()
,
zoznamSekcií()
,
mennýPriestorVlastností()
public Zoznam<String> zoznamVlastnosti() throws IOException
Alias pre zoznamVlastností
.
IOException
public boolean zachovávaNepoužitéVlastnosti()
Zistí v akom režime sa nachádza táto inštancia triedy
Súbor
.
true
– inštancia pri zápise zachováva nepoužité
vlastnosti; false
– inštancia odstraňuje nepoužité
vlastnostizachovajNepoužitéVlastnosti()
,
odstraňujNepoužitéVlastnosti()
,
vymažVlastnosť(String)
,
zapíšVlastnosť(String, Object)
public boolean zachovavaNepouziteVlastnosti()
Alias pre zachovávaNepoužitéVlastnosti
.
public void zachovajNepoužitéVlastnosti()
Prepne inštanciu do režimu zachovávania nepoužitých vlastností.
V súbore zostanú po zápise zachované aj tie vlastnosti, ktoré
z neho boli pôvodne prečítané, ale neboli opätovne zapísané.
Toto je predvolené správanie triedy Súbor
.
public void zachovajNepouziteVlastnosti()
Alias pre zachovajNepoužitéVlastnosti
.
public void odstraňujNepoužitéVlastnosti()
Prepne inštanciu do režimu odstraňovania nepoužitých vlastností. Do súboru budú zapísané len tie vlastnosti, ktoré programátor prikázal zapísať. Zapisované vlastnosti, prázdne riadky a komentáre sa v súbore nemusia vyskytnúť v rovnakom poradí ako boli zapísané. Poradie zápisu vychádza z pôvodného poradia vlastností v čase čítania súboru.
Poznámka: Ak by uvedené správanie niekomu
z ľubovoľného dôvodu prekážalo, môže pred zápisom otvoriť a zavrieť
súbor na čítanie, pretože v metóde otvorNaČítanie
nastáva vyčistenie vnútornej pamäte vlastností.
V takom prípade by v skutočnosti nebolo nevyhnutné použiť túto metódu
(odstraňujNepoužitéVlastnosti
), ktorej účelom je iba
zariadiť to, aby sa do súboru zapísali len relevantné riadky
v ľubovoľnom poradí.
Poznámka: Odstraňovanie sa dotýka aj
komentárov
a prázdnych riadkov.
Avšak, ak by bola rovnaká inštancia triedy Súbor
použitá na zápis vlastností do viacerých súborov, zapisované
vlastnosti by sa mohli premiešať, preto radšej nepoužívajte jednu
inštanciu na zápis do viacerých súborov – pozri tiež poznámku pri
metóde zapíšVlastnosť
.
public void odstranujNepouziteVlastnosti()
Alias pre odstraňujNepoužitéVlastnosti
.
public void vymažVlastnosti()
Vymaže všetky vlastnosti z vnútornej pamäte, ktoré mohli zostať
zapamätané po poslednom čítaní súboru. Po prečítaní konfiguračného
súboru musia všetky vlastnosti zostať zachované vo vnútornej
pamäti, aby ich bolo možné obnoviť (to jest zapísať) pri zápise
konfiguračného súboru na disk aj v prípade, že neboli pri procese
zápisu použité (čiže ich hodnoty neboli aktualizované niektorou
metódou na zápis vlastností). Táto metóda môže pri správnom použití
zabrániť nežiadúcemu premiešaniu vlastností pri spracovaní
viacerých súborov prostredníctvom tej istej inštancie triedy
Súbor
.
Poznámka: Pozrite si aj upozornenie pri
metóde zapíšVlastnosť
.
public void vymažVlastnosť(String názov) throws IOException
Odstráni zo súboru záznam o vlastnosti so zadaným menom. Použitie tejto metódy môže byť zbytočné v prípade, že je zapnuté odstraňovanie nepoužitých vlastností. Naopak, v prípade, že je odstraňovanie nepoužitých vlastností vypnuté, môžu byť prostredníctvom tejto metódy odstránené individuálne nepotrebné záznamy.
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na zápis alebo
ak názov vlastnosti nespĺňa niektorú požiadavkuzapíšVlastnosť(String, Object)
,
zachovávaNepoužitéVlastnosti()
,
zachovajNepoužitéVlastnosti()
,
odstraňujNepoužitéVlastnosti()
public void vymazVlastnost(String názov) throws IOException
Alias pre vymažVlastnosť
.
IOException
public void prekladajVlastnosti(String[][] prekladyNázvov, String[][] prekladyHodnôt)
Táto metóda zapne alebo vypne automatický preklad názvov a hodnôt vlastností tak, aby aj tie vlastnosti konfiguračných súborov, ktoré programovací rámec zapisuje automaticky, mohli byť v prípade potreby používané v cudzojazyčnom prostredí. Preklad funguje automaticky pri zápise a čítaní, takže v rámci programu treba používať pôvodné pomenovania a/alebo hodnoty vlastností, ale v konfiguračnom súbore budú uložené preložené pomenovania a/alebo hodnoty vlastností.
Obidve polia (prekladyNázvov
a prekladyHodnôt
)
sú dvojrozmerné reťazcové. Počet prvkov prvého rozmeru je ľubovoľný,
určuje počet záznamov v slovníku. Počet prvkov druhého rozmeru je
predpísaný a musí sa rovnať trom, inak bude záznam ignorovaný.
Význam jednotlivých prvkov druhého rozmeru je nasledujúci:
index | význam |
---|---|
0 | zdrojový reťazec – používaný v rámci programovacieho rámca |
1 | cieľový reťazec – zapisovaný do súboru |
2 | spôsob vyhľadávania – "Z" –
výskyt na začiatku reťazca, "K" – výskyt na konci reťazca,
"S" – výskyt v ľubovoľnej časti reťazca, "P" –
presná zhoda reťazca; pri inej hodnote je záznam ignorovaný |
Každé spustenie tejto metódy spôsobí úplné vymazanie všetkých
vnútorných slovníkov. Chybné prvky, záznamy (napr. duplicitné)
alebo polia sú ignorované. To znamená, že zadanie prázdneho poľa
alebo hodnoty null
má za následok vypnutie tej časti
prekladu, ktorej pole je prázdne.
Príklad:
Nasledujúca ukážka zariadi preklad základných vlastností okna a slovných vyjadrení farieb do anglického jazyka.
Svet
.konfiguračnýSúbor
().prekladajVlastnosti
(new
String
[][]{ {"okno."
,"window."
,"Z"
}, {".šírka"
,".width"
,"K"
}, {".výška"
,".height"
,"K"
}, {".maximalizované"
,".maximized"
,"K"
}, {".minimalizované"
,".minimized"
,"K"
} },new
String
[][]{ {"žiadna"
,"none"
,"P"
}, {"biela"
,"white"
,"P"
}, {"svetlošedá"
,"lightgray"
,"P"
}, {"šedá"
,"gray"
,"P"
}, {"tmavošedá"
,"darkgray"
,"P"
}, {"čierna"
,"black"
,"P"
}, {"svetločervená"
,"lightred"
,"P"
}, {"červená"
,"red"
,"P"
}, {"tmavočervená"
,"darkred"
,"P"
}, {"svetlozelená"
,"lightgreen"
,"P"
}, {"zelená"
,"green"
,"P"
}, {"tmavozelená"
,"darkgreen"
,"P"
}, {"svetlomodrá"
,"lightblue"
,"P"
}, {"modrá"
,"blue"
,"P"
}, {"tmavomodrá"
,"darkblue"
,"P"
}, {"svetlotyrkysová"
,"lightcyan"
,"P"
}, {"tyrkysová"
,"cyan"
,"P"
}, {"tmavotyrkysová"
,"darkcyan"
,"P"
}, {"svetlopurpurová"
,"lightmagenta"
,"P"
}, {"purpurová"
,"magenta"
,"P"
}, {"tmavopurpurová"
,"darkmagenta"
,"P"
}, {"svetložltá"
,"lightyellow"
,"P"
}, {"žltá"
,"yellow"
,"P"
}, {"tmavožltá"
,"darkyellow"
,"P"
}, {"svetlohnedá"
,"lightbrown"
,"P"
}, {"hnedá"
,"brown"
,"P"
}, {"tmavohnedá"
,"darkbrown"
,"P"
}, {"svetlooranžová"
,"lightorange"
,"P"
}, {"oranžová"
,"orange"
,"P"
}, {"tmavooranžová"
,"darkorange"
,"P"
}, {"svetloružová"
,"lightpink"
,"P"
}, {"ružová"
,"pink"
,"P"
}, {"tmavoružová"
,"darkpink"
,"P"
}, {"uhlíková"
,"coal"
,"P"
}, {"antracitová"
,"anthracite"
,"P"
}, {"papierová"
,"paper"
,"P"
}, {"snehová"
,"snow"
,"P"
}, {"tmavofialová"
,"darkpurple"
,"P"
}, {"fialová"
,"purple"
,"P"
}, {"svetlofialová"
,"lightpurple"
,"P"
}, {"tmavoatramentová"
,"darkink"
,"P"
}, {"atramentová"
,"ink"
,"P"
}, {"svetloatramentová"
,"lightink"
,"P"
}, {"tmavoakvamarínová"
,"darkaqua"
,"P"
}, {"akvamarínová"
,"aqua"
,"P"
}, {"svetloakvamarínová"
,"lightaqua"
,"P"
}, {"tmaváNebeská"
,"darkceleste"
,"P"
}, {"nebeská"
,"celeste"
,"P"
}, {"svetláNebeská"
,"lightceleste"
,"P"
} });
prekladyNázvov
– pole záznamov k prekladom názvov vlastnostíprekladyHodnôt
– pole záznamov k prekladom hodnôt vlastnostípublic void zapíšVlastnosť(String názov, Object hodnota)
Zapíše vlastnosť podporovaného údajového typu. Ak zavoláme túto metódu opakovane s rovnakým názvom vlastnosti, tak nastane prepísanie hodnoty tej istej vlastnosti. (V prípade kolízií odporúčame použiť menný priestor.)
Dôležité upozornenie na prípadnú
kolíziu pri práci so súbormi obsahujúcimi vlastnosti!
Najskôr niekoľko faktov. Prostredie grafického robota
umožňuje otvoriť viacero súborov naraz. (Za prvé každý robot
smie pracovať s vlastným súborom, za druhé programátor smie
vytvárať vlastné inštancie typu Súbor
.) Metóda
otvorNaZápis
okamžite po svojom
úspešnom vykonaní kompletne vymaže celý obsah otváraného súboru
bez ohľadu na to, čo obsahoval. Ak bol súbor otvorený na čítanie
a použijeme ľubovoľnú z metód slúžiacich na čítanie vlastností,
okamžite sa do inštancie súboru prečíta a spracuje celý obsah
súboru predpokladajúc, že obsahuje údaje o vlastnostiach.
Spracované údaje zostávajú v pamäti (v inštancii súboru) aj po
zavretí súboru a sú opätovne použité pri zápise vlastností…
Kolíziám a premiešavaniu obsahu rôznych súborov spracúvaných
jednou inštanciou by sa za určitých okolností dalo zabrániť včasným
zapnutím režimu
nepoužitých vlastností (ktorý sa dotýka aj komentárov a prázdnych riadkov). Kolíziám
spôsobeným spracovaním jedného súboru rôznymi inštanciami triedy
Súbor
sa zabrániť nedá.
Aby ste sa vyhli prípadným problémom, používajte vždy na prácu
s jedným súborom vlastností tú istú inštanciu triedy Súbor
(buď inštanciu súboru v niektorom
z robotov, alebo vlastnú vytvorenú inštanciu).
K dispozícii je aj metóda vymažVlastnosti
,
ktorú je možné použiť pred každým čítaním vlastností zo súboru a tým
zabrániť nežiadúcim kolíziám.
názov
– názov vlastnosti; nesmie byť prázdny ani obsahovať
nepovolené znaky (bodku, hranatú zátvorku alebo rovná sa)hodnota
– hodnota vlastnosti podporovaných údajových typov,
čo sú jednorozmerné polia primitívnych údajových typov a všetky
objekty vyjadriteľné v textovej podobe; v súčasnej verzii rámca
táto metóda špeciálne zaobchádza s objektmi farieb a polôh –
používa prislúchajúce metódy prevodu dostupné v rámci
programovacieho rámca; v súvislosti s tým je definovaná aj
prislúchajúca skupina metód slúžiaca na čítanie polôh a fariebGRobotException
– ak súbor nie je otvorený na zápis alebo
ak názov vlastnosti nespĺňa niektorú požiadavkuvymažVlastnosť(String)
,
zapíšKomentárVlastností(String)
,
zapíšPrázdnyRiadokVlastností()
,
zachovávaNepoužitéVlastnosti()
,
zachovajNepoužitéVlastnosti()
,
odstraňujNepoužitéVlastnosti()
public void zapisVlastnost(String názov, Object hodnota)
Alias pre zapíšVlastnosť
.
public void zapíšKomentárVlastností(String komentár)
Dovoľuje vkladať do textových súborov vlastností jednoriadkové komentáre. Ak s textovým súborom nebolo manipulované zvonka aplikácie a nebolo v ňom zmenené poradie zapísaných vlastností, nemali by sa v ňom vyskytnúť nežiaduce kópie komentárov.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
komentár
– text komentárazapíšVlastnosť(String, Object)
,
zapíšPrázdnyRiadokVlastností()
public void zapisKomentarVlastnosti(String komentár)
Alias pre zapíšKomentárVlastností
.
public void zapíšPrázdnyRiadokVlastností()
Dovoľuje vkladať do textových súborov vlastností prázdne riadky slúžiace ako oddeľovače. Ak s textovým súborom nebolo manipulované zvonka aplikácie a nebolo v ňom zmenené poradie zapísaných vlastností, nemali by sa v ňom vyskytnúť nežiaduce kópie prázdnych riadkov.
Poznámka: Prosím, venujte pozornosť
upozorneniu pri metóde zapíšVlastnosť
!
public void zapisPrazdnyRiadokVlastnosti()
Alias pre zapíšPrázdnyRiadokVlastností
.
public boolean koniecRiadka() throws IOException
Overí, či sa prúd údajov čítaný zo súboru momentálne nachádza na konci riadka. Súbor musí byť otvorený na čítanie.
true
, inak false
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítaniepublic boolean koniecSúboru() throws IOException
Overí, či sa prúd údajov čítaný zo súboru skončil. Súbor musí byť otvorený na čítanie.
true
, inak
false
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítaniepublic boolean koniecSuboru() throws IOException
Alias pre koniecSúboru
.
IOException
public String čítajRiadok() throws IOException
Prečíta zo súboru otvoreného na čítanie riadok textu a vráti ho
v objekte typu String
.
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítaniepublic String citajRiadok() throws IOException
Alias pre čítajRiadok
.
IOException
public String dočítajRiadok() throws IOException
Umožňuje dočítať zo súboru otvoreného na čítanie aktuálne
spracúvaný riadok textu. Ak vo vnútornom zásobníku súboru jestvujú
zvyškové údaje z naposledy spracúvaného riadka, tak sú vrátené
v objekte typu String
a následne sú
vymazané z vnútorného zásobníka súboru. Inak je vrátený prázdny
reťazec. To znamená, že spracovanie ďalšieho riadka sa nezačne ako
tomu je pri volaní metódy čítajRiadok
.
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítaniepublic String docitajRiadok() throws IOException
Alias pre dočítajRiadok
.
IOException
public Character čítajZnak() throws IOException
Prečíta zo súboru otvoreného na nasledujúci znak a vráti jeho
hodnotu. Znaky nových riadkov sú touto metódou ignorované. Ak
metóda dosiahne koniec súboru, vráti hodnotu null
.
Character
alebo null
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítaniepublic Character citajZnak() throws IOException
Alias pre čítajZnak
.
IOException
public Long čítajCeléČíslo() throws IOException
Prečíta zo súboru otvoreného na čítanie text od aktuálnej polohy v súbore po najbližšiu medzeru alebo koniec riadka a pokúsi sa ho previesť na celé číslo…
Long
ak je
prečítaný text možné previesť na celé číslo alebo null
v prípade zlyhaniaIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciipublic Long citajCeleCislo() throws IOException
Alias pre čítajCeléČíslo
.
IOException
public Double čítajReálneČíslo() throws IOException
Prečíta zo súboru otvoreného na čítanie text od aktuálnej polohy v súbore po najbližšiu medzeru alebo koniec riadka a pokúsi sa ho previesť na reálne číslo…
Double
ak je prečítaný text možné previesť na rálne
číslo alebo null
v prípade zlyhaniaIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciipublic Double citajRealneCislo() throws IOException
Alias pre čítajReálneČíslo
.
IOException
public Boolean čítajBoolean() throws IOException
Prečíta zo súboru otvoreného na čítanie text od aktuálnej polohy
v súbore po najbližšiu medzeru alebo koniec riadka a pokúsi sa ho
previesť na objekt typu Boolean
obsahujúci pravdivostnú hodnotu true
/false
. Platí, že ak bol nájdený text „true
“ bez
ohľadu na veľkosť písmen, bude hodnota objektu true
,
inak false
.
Boolean
alebo null
v prípade zlyhaniaIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciipublic Boolean citajBoolean() throws IOException
Alias pre čítajBoolean
.
IOException
public int čítaj(Object... objekty) throws IOException
Pokúsi sa prečítať zo súboru otvoreného na čítanie toľko textu, koľko je potrebné na naplnenie zadaného počtu objektov, pričom objem prečítaného textu je závislý od typu objektu. Sú povolené len niektoré údajové typy:
StringBuffer
– prečíta riadok
textu;int
[]
, long
[]
– prečíta
toľko celých čísel, koľko prvkov má pole;float
[]
, double
[]
–
prečíta toľko reálnych čísel, koľko prvkov má pole;boolean
[]
– prečíta toľko pravdivostných
hodnôt, koľko prvkov má pole;char
[]
– prečíta toľko znakov, koľko prvkov
má pole.Ak metóda prijme nepovolený údajový typ, vrhne výnimku
GRobotException
s jazykovým
identifikátorom unsupportedDataType
.
objekty
– variabilný zoznam parametrov s povolenými údajovými
typmi – pozri zoznam vyššieint
prispeje do súčtu počtom textových
blokov (oddelených medzerami a nasledujúcich v súbore za
sebou, hoci na viacerých riadkoch), ktoré sa podarilo úspešne
previesť na celé čísla a zapísať do prvkov poľa, objekt
poľa typu char
prispeje do súčtu počtom znakov,
ktoré sa podarilo zapísať do prvkov poľa (znaky nových riadkov
sú ignorované), objekt typu StringBuffer
prispeje dĺžkou prečítaného riadka a podobne;
ak potrebujete jednotlivé hodnoty odlíšiť, tak vykonajte
viacero samostatných volaní tejto metódy vždy s jedným
parametromIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na čítanie
alebo metóda prijala argument nepodporovaného údajového typu
(čím sa spracovanie automaticky ukončí)public void citaj(Object... objekty) throws IOException
Alias pre čítaj
.
IOException
public void zapíšBOM() throws IOException
Zapíše do súboru otvoreného na zápis značku BOM. BOM – byte
order mark – je špeciálna značka zapisovaná na začiatok súboru,
ktorá má slúžiť na identifikáciu poradia bajtov (tzv. endianitu)
vo viacbajtových údajových celkoch v rámci tohto súboru (čiže pri
textových súboroch o nej má zmysel uvažovať len ak vieme, že jeden
znak má alebo môže mať viac ako jeden bajt; kódovania UTF túto
podmienku spĺňajú). Značka zodpovedá reťazcu
"\uFEFF"
.
Cieľom jej uvedenia je uľahčiť alebo umožniť softvérom iných
strán identifikáciu organizácie bajtov v súbore. Napríklad
v prípade textového súboru kódovaného kódovaním UTF-8 je táto
značka automaticky konvertovaná na trojicu bajtov s hodnotami:
0xEF
(239
), 0xBB
(187
),
0xBF
(191
) a tú môže softvér inej strany
ľahko identifikovať ako signál, že tento textový súbor používa
toto kódovanie.
Túto metódu nemá zmysel volať inokedy, než tesne po otvorení súboru na zápis. Výskyt tejto značky na inom mieste, než na začiatku súboru by spôsobil chaos. Nemá tiež zmysel túto značku zapisovať, ak máme istotu, že textový súbor bude čítaný len v rámci programovacieho rámca. Táto trieda pri čítaní túto značku automaticky ignoruje.
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na zápispublic void zapisBOM() throws IOException
Alias pre zapíšBOM
.
IOException
public void zapíšReťazec(String text) throws IOException
Zapíše do súboru otvoreného na zápis určený reťazec.
text
– text, ktorý má byť zapísaný do súboru otvoreného na
zápisIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na zápispublic void zapisRetazec(String text) throws IOException
Alias pre zapíšReťazec
.
IOException
public void zapíšRiadok(String text) throws IOException
Zapíše do súboru otvoreného na zápis riadok textu.
Poznámka: Metóda používa na ukončenie
riadka sekvenciu návrat vozíka ('\r'
) a koniec riadka
('\n'
), čo je bežný spôsob ukončovania riadkov
v textových súboroch OS Windows. Ak chcete na ukončovanie využívať
inú sekvenciu, tak buď použite metódu zapíš
a uveďte želanú sekvenciu ako posledný parameter (ale pozor, táto
metóda automaticky vkladá pomedzi zapísané údaje medzery podľa
vnútorných pravidiel typografie, čo nemusí byť vo všetkých
prípadoch žiaduce), alebo metódu zapíšReťazec
pri volaní ktorej pripojíte želanú sekvenciu na
koniec zapisovaného reťazca.
text
– text, ktorý má byť zapísaný do samostatného riadka
súboru otvoreného na zápisIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na zápispublic void zapisRiadok(String text) throws IOException
Alias pre zapíšRiadok
.
IOException
public void zapíšRiadok() throws IOException
Zapíše do súboru otvoreného na zápis prázdny riadok.
Poznámka: Metóda používa na ukončenie
riadka sekvenciu návrat vozíka ('\r'
) a koniec riadka
('\n'
), čo je bežný spôsob ukončovania riadkov
v textových súboroch OS Windows. Ak chcete na ukončovanie využívať
inú sekvenciu, tak buď použite metódu zapíš
a uveďte želanú sekvenciu ako posledný parameter (ale pozor, táto
metóda automaticky vkladá pomedzi zapísané údaje medzery podľa
vnútorných pravidiel typografie, čo nemusí byť vo všetkých
prípadoch žiaduce), alebo metódu zapíšReťazec
pri volaní ktorej pripojíte želanú sekvenciu na
koniec zapisovaného reťazca.
IOException
– ak vznikla chyba vo vstupno-výstupnej
operáciiGRobotException
– ak súbor nie je otvorený na zápispublic void zapisRiadok() throws IOException
Alias pre zapíšRiadok
.
IOException
public void zapíš(Object... objekty) throws IOException
Zapíše do súboru otvoreného na zápis textovú podobu zoznamu
objektov rôzneho údajového typu (napríklad celé čísla int
budú zapísané ako séria číslic – čísla vo forme textu).
Táto metóda automaticky oddeľuje číselné argumenty medzerami
(resp. argumenty, ktoré nie sú priamo objektami typu String
ani StringBuffer
), čo je výhodné pri čítaní údajov zo súboru.
objekty
– séria objektov rôzneho údajového typu; objekt musí
byť vyjadriteľný v textovej podobeIOException
– ak vznikla chyba vo vstupno-výstupnej
operáciipublic void zapis(Object... objekty) throws IOException
Alias pre zapíš
.
IOException
public String[][] čítajTabuľku(String názovSúboru, String... nastavenia) throws IOException
Prečíta tabuľku zo zadaného súboru. Tabuľkou sa v tomto prípade rozumie dvojrozmerné pole reťazcov. Táto metóda otvorí súbor so zadaným názvom, prečíta jeho obsah, zavrie ho a prečítaný obsah spracuje podľa zadaných alebo predvolených hodnôt nastavení.
Metóda aktíve využíva nasledujúce metódy: otvorNaČítanie
, čítajRiadok
, zavri
a reťazecNaTabuľku
.
Nastavenia:
Táto metóda je navrhnutá tak, aby spolupracovala s metódou
reťazecNaTabuľku
(ktorú
využíva – vnútorne ju volá; pozri vyššie). Preto nastavenia, ktoré
prijíma a spracúva uvedená metóda nepovažuje za chybné, ale
ignoruje ich.
Inak, ak táto metóda nájde neznáme nastavenie alebo ak niektoré
nastavenie nie je v tvare «názovNastavenia»=
«hodnotaNastavenia», tak vrhne výnimku
IllegalArgumentException
. Toto je
zoznam povolených nastavení:
kódovanie
, kodovanie
, encoding
,
charset
– kódovanie vstupného súboru – pozri aj metódu
otvorNaČítanie
;
"UTF-8"
formát
, format
,
oddeľovač
, oddelovac
, separator
, ohraničenie
, ohranicenie
, enclosure
, únikovýZnak
, unikovyZnak
, escapeChar
, únikovýVOhraničení
, unikovyVOhraniceni
, escapeInEnclosure
, orezaťZnaky
, orezatZnaky
,
trimChars
, komentár
, komentar
, comment
, číselnéÚnikové
, ciselneUnikove
,
numericalEscapes
, číselnéVOhraničení
, ciselneVOhraniceni
, numericalInEnclosure
– ignorované
touto metódou; ich význam je v opise metódy reťazecNaTabuľku
, do ktorej
sa, samozrejme, posielajú po prečítaní údajov zo súboru.Poznámka: Nastavenia uvedené v zozname parametrov neskôr prepisujú hodnoty nastavení uvedených skôr.
Pozri aj zdroje uvedené v opise metódy reťazecNaTabuľku
.
názovSúboru
– názov súboru, z ktorého sa má prečítať tabuľkanastavenia
– rôzne (nepovinné) nastavenia; pozri zoznam vyššieIllegalArgumentException
– ak je zadaný nesprávny parameter
nastaveniaIOException
– ak vznikne chyba pri čítaní súborupublic String[][] citajTabulku(String názovSúboru, String... nastavenia) throws IOException
Alias pre čítajTabuľku
.
IOException
public static String[][] reťazecNaTabuľku(String tabuľka, String... nastavenia)
Prevedie zadaný reťazec na tabuľku. Tabuľkou sa v tomto prípade
rozumie dvojrozmerné pole reťazcov. Pravidlá rozpoznávania sú
vytvorené tak, aby bolo možné rekonštruovať tabuľku spojenú do
jedného reťazca metódou tabuľkaNaReťazec
. Pravidlá sú konfigurovateľné
variabilným zoznamom parametrov nastavenia
, aby bolo možné
rozpoznávať aj údaje prevzaté z externých zdrojov. Môže ísť o údaje
vo formáte CSV (comma separated values – hodnoty oddelené čiarkami)
alebo v principiálne podobných formátoch. Zároveň túto metódu
využíva metóda čítajTabuľku
.
Nastavenia:
Táto metóda je navrhnutá tak, aby spolupracovala s metódou
čítajTabuľku
, ktorá
vnútorne volá túto metódu. Preto nastavenia, ktoré prijíma
a spracúva uvedená metóda nepovažuje za chybné, ale ignoruje
ich.
Inak, ak táto metóda nájde neznáme nastavenie alebo ak niektoré
nastavenie nie je v tvare «názovNastavenia»=
«hodnotaNastavenia», tak vrhne výnimku
IllegalArgumentException
. Toto je
zoznam povolených nastavení:
kódovanie
, kodovanie
, encoding
, charset
– ignorované touto
metódou; ich význam je v opise metódy čítajTabuľku
;formát
, format
– toto nastavenie je skratkou;
kombinuje natavenie viacerých iných nastavení naraz; platnými
hodnotami sú napríklad: "CSV"
, "SSV"
,
"UNX"
…, pričom podrobnosti sú rozpísané nižšie;
oddeľovač
, oddelovac
, separator
–
dovoľuje zmeniť znak oddeľovača údajov; predvoleným oddeľovačom je
tabulátor; ak je hodnota tohto parametra prázdna, tak nastavenie
nie je zmenené – oddeľovač musí byť definovaný;
'\t'
ohraničenie
, ohranicenie
, enclosure
–
zapne ohraničovanie údajov; pre túto metódu ide o zapnutie
rozpoznávania ohraničených údajov podľa zadaného znaku (napríklad
strojopisných úvodzoviek "
); bez ohľadu na nastavenie
únikovýVOhraničení
považuje metóda zdvojenie znaku
ohraničenia v rámci ohraničenia za „únikovú sekvenciu“ tohto znaku,
čiže napríklad ak by bolo ohraničenie nastavené na strojopisné
úvodzovky a nastavenie „únikový v ohraničení“ na spätnú lomku, tak
obidva nasledujúce reťazce uložené v súbore:
"Boris ""Hracho"" Zelený"
a "Boris \"Hracho\" Zelený"
(v zdrojovom kóde Javy by
sme ich zapísali takto:
"\"Boris \"\"Hracho\"\" Zelený\""
a "\"Boris \\\"Hracho\\\" Zelený\""
) by boli rozpoznané
ako: Boris "Hracho" Zelený;
únikovýZnak
, unikovyZnak
, escapeChar
–
umožňuje zmeniť predvolený únikový znak \
na zadaný;
zadanie prázdneho reťazca znamená pre túto metódu vypnutie
rozpoznávania únikových sekvencií; metóda predpokladá, že únikovým
znakom sú uvedené tieto špeciálne znaky v rámci údajov: nový
riadok a návrat vozíka (alebo ich kombinácia), znak oddeľovača
(oddeľovač
), znak ohraničenia (ohraničenie
)
a samotný únikový znak (ktorý je v prípade jeho výskytu zdvojený);
'\\'
únikovýVOhraničení
, unikovyVOhraniceni
,
escapeInEnclosure
– možnosť nastavenia toho, či sa má
alebo nemá brať do úvahy únikový znak v rámci ohraničenia (kvázi
„hodnôt v úvodzovkách“ – pozri nastavenie ohraničenie
)
a aký znak to má byť; ak je toto nastavenie prázdne (predvolený
stav), tak nie sú v rámci ohraničenia rozpoznávané únikové
sekvencie (ak by boli nejaké nájdené, metóda ich ponechá
v pôvodnom stave); toto nastavenie bez problémov koexistuje
s konvenciou dvojitého znaku ohraničenia (pozri nastavenie ohraničenie
), inak platia rovnaké pravidlá ako pri nastavení
únikovýZnak
;
orezaťZnaky
, orezatZnaky
, trimChars
–
nastaví skupinu znakov, ktoré budú orezané z okolia oddeľovačov,
čiže nepridajú sa k hodnote, ak sa nachádzajú na začiatku riadka
alebo tesne za oddeľovačom, ani ak sú na konci riadka alebo tesne
pred oddeľovačom (t. j. „mimo ohraničenia“);
pozor(!), toto nastavenie je filtrované; obidve metódy, ktoré ho
využívajú z neho odfiltrujú rezervované znaky, ktoré nesmú byť
orezávané, pretože majú kľúčový význam pri rozpoznávaní údajov
tabuľky: znaky návratu vozíka a nového riadka (CR, LF), oddeľovača
údajov, znak ohraničenia údajov (ak je toto nastavenie aktívne)
a únikový znak (mimo ohraničenia; ak je toto nastavenie aktívne);
komentár
, komentar
, comment
– znak,
ktorý ak bude nájdený ako prvý platný znak na začiatku nového
riadka, tak bude celý riadok považovaný za komentár a teda bude
ignorovaný; formulácia „platný znak“ označuje taký znak, ktorý
nie je preskočený nastavením orezaťZnaky
;
číselnéÚnikové
, ciselneUnikove
,
numericalEscapes
– toto nastavenie je typu boolean
– pozri pravidlá rozpoznávania nižšie; názov
tohto nastavenia je jemne skrátený, úplný názov by mal znieť (po
prevode z camelCase tvaru do ľudsky čitateľného tvaru): „číselné
únikové sekvencie“; potom je jasné, že nastavenie zapne
rozpoznávanie číselných únikových sekvencií; ide o sekvencie
v nasledujúcom tvare, kde # je platná desiatková,
osmičková alebo šestnástková číslica (podľa kontextu):
\
### a \o
### – osmičkový kód
znaku, \x
## – šestnástkový kód znaku, \d
### – desiatkový kód znaku a \u
#### – šestnástkový kód Unicode znaku, pričom kód
znaku bude vo všetkých prípadoch prevedený na konkrétny znak, čiže
napríklad sekvencia \
d032
bude prevedená na medzeru;
pozor, toto nastavenie je účinné len ak je zapnuté nastavenie
únikovýZnak
/unikovyZnak
/escapeChar
;
číselnéVOhraničení
, ciselneVOhraniceni
,
numericalInEnclosure
– toto nastavenie je typu boolean
– pozri pravidlá rozpoznávania nižšie; názov
tohto nastavenia je skrátený, úplný názov by mal znieť „číselné
únikové (sekvencie) v ohraničení“ (ale to by bolo príliš dlhé);
ak je zapnuté nastavenie únikovýVOhraničení
/unikovyVOhraniceni
/escapeInEnclosure
, tak zapne
rozpoznávanie numerických únikových sekvencií v rámci ohraničenia –
pozri aj nastavenie číselnéÚnikové
/ciselneUnikove
/numericalEscapes
;
Pravidlá rozpoznávania pre hodnoty nastavení typu boolean
: Hodnota tohto typu nastavenia je vyhodnotená ako
false
, ak je reťazec hodnoty prázdny, rovný
"0"
alebo ak sa začína na veľké alebo malé písmeno: f,
l alebo n. Vo všetkých ostatných prípadoch je hodnota nastavenia
vyhodnotená ako true
.
Podrobnosti nastavenia formát
:
"CSV"
– formát zodpovedajúci originálnemu formátu
„comma separated values“ (čiarkou oddelené hodnoty) – nastavuje
tieto hodnoty nastavení: "oddeľovač=,"
, "únikovýZnak="
, "ohraničenie=\""
."SSV"
– vymyslený formát, ktorý má zastupovať
skratku „semicolon separated values“ (bodkočiarkou oddelené
hodnoty) – nastavuje tieto hodnoty nastavení: "oddeľovač=;"
, "únikovýZnak="
, "ohraničenie=\""
."UNX"
– zástupný symbol, ktorý vykoná nastavenia
kompatibilné so štýlom CSV súborov používaných v OS Unix („unix
style“) – konkrétne ide nastavenie týchto hodnôt nastavení:
"oddeľovač=,"
, "únikovýZnak=\\"
, "ohraničenie="
."TAB"
– zástupný symbol, ktorý vykoná nastavenia
formátu tabulátormi oddelených hodnôt – konkrétne ide nastavenie
týchto hodnôt nastavení: "oddeľovač=\t"
, "únikovýZnak=\\"
, "ohraničenie="
.Poznámka: Nastavenia uvedené v zozname
parametrov neskôr prepisujú hodnoty nastavení uvedených skôr.
Vďaka tomu je možné dodatočne prispôsobiť súhrnné nastavenia
vykonané pri spracovaní parametra formát
.
Pozri aj:
Nekompatibilita formátov – rôzne oddeľovače
Na rôznych systémoch sa rôzne používajú tabuľkové formáty slúžiace na ukladanie údajov tabuliek v textovej forme s použitím niektorých rezervovaných znakov ako oddeľovačov a ohraničení všetkých alebo len nevyhnutných buniek. Napríklad formát CSV je vo všeobecnosti považovaný za formát obsahujúci „čiarkami oddelené hodnoty“ (CSV – comma separated values). To však nie vždy platí. Napríklad Excel sa prinajmenšom v OS Windows riadi nastaveniami systému.
Aj keď je v zozname typov súborov Excelu (pri výbere formátu pri ukladaní do iného formátu cez Uložiť ako…) uvedené „CSV UTF-8 (oddelené čiarkami) (*.csv)“:
… nie sú to vždy čiarky.
Excel sa riadi nastaveniami operačného systému. Ak chceme overiť aktuálne nastavenie, otvorme Ovládací panel a zvoľme Hodiny a oblasť (alebo Oblasť – podľa typu zobrazenia):
V dialógovom okne zvoľme tlačidlo Ďalšie nastavenia:
A tam venujme pozornosť znaku Oddeľovač v zoznamoch:
Na obrázku vidno bodkočiarku. Toto je bežné nastavenie v slovenskej jazykovej lokalizácii OS Windows (ktoré preberá aj Excel).
tabuľka
– reťazec obsahujúci údaje tabuľky, ktoré budú
prevedené na dvojrozmerné polenastavenia
– rôzne (nepovinné) nastavenia; pozri zoznam vyššieIllegalArgumentException
– ak je zadaný nesprávny parameter
nastaveniapublic static String[][] retazecNaTabulku(String tabuľka, String... nastavenia)
Alias pre reťazecNaTabuľku
.
public void zapíšTabuľku(String názovSúboru, String[][] tabuľka, String... nastavenia) throws IOException
Zapíše tabuľku do zadaného súboru. Tabuľkou sa v tomto prípade rozumie dvojrozmerné pole reťazcov. Táto metóda otvorí súbor so zadaným názvom na zápis (buď ho vytvorí, alebo prepíše alebo zapisovaný obsah pripojí na jeho koniec, ak je aktívne nastavenie pripájania – pozri nižšie), zapíše do neho obsah zadaného poľa podľa pravidiel určených prostredníctvom zadaných alebo predvolených hodnôt nastavení a súbor zavrie.
Metóda aktíve využíva nasledujúce metódy: otvorNaZápis
, zapíšReťazec
, zavri
a tabuľkaNaReťazec
.
Nastavenia:
Táto metóda je navrhnutá tak, aby spolupracovala s metódou
tabuľkaNaReťazec
(ktorú využíva – vnútorne ju volá; pozri vyššie). Preto nastavenia,
ktoré prijíma a spracúva uvedená metóda nepovažuje za chybné, ale
ignoruje ich.
Inak, ak táto metóda nájde neznáme nastavenie alebo ak niektoré
nastavenie nie je v tvare «názovNastavenia»=
«hodnotaNastavenia», tak vrhne výnimku
IllegalArgumentException
. Toto je
zoznam povolených nastavení:
kódovanie
, kodovanie
, encoding
,
charset
– kódovanie vstupného súboru – pozri aj metódu
otvorNaČítanie
;
"UTF-8"
pripojiť
, pripojit
, append
– toto
nastavenie je typu boolean
– pozri pravidlá
rozpoznávania nižšie; toto nastavenie bolo pridané na
zachovanie kompatibility s metódou otvorNaZápis
; nepredpokladá sa jeho aktívne
využívanie, ale ak je prítomné a nastavené na true
, tak
bude obsah zapisovaný do súboru pripojený na jeho koniec (ak súbor
jestvuje); pozri aj metódu otvorNaZápis
;
false
formát
, format
,
oddeľovač
, oddelovac
, separator
, ohraničenie
, ohranicenie
, enclosure
, únikovýZnak
, unikovyZnak
, escapeChar
, únikovýVOhraničení
, unikovyVOhraniceni
, escapeInEnclosure
, orezaťZnaky
, orezatZnaky
,
trimChars
, novýRiadok
, novyRiadok
, newLine
, BOM
, ohraničKaždúBunku
, ohranicKazduBunku
, encloseEachCell
– ignorované touto
metódou; ich význam je v opise metódy tabuľkaNaReťazec
, do
ktorej sa, samozrejme, posielajú tesne pred zapísaním údajov do
súboru – v rámci ich prevodu prostredníctvom uvedenej
metódy;Pravidlá rozpoznávania pre hodnoty nastavení typu boolean
: Hodnota tohto typu nastavenia je vyhodnotená ako
false
, ak je reťazec hodnoty prázdny, rovný
"0"
alebo ak sa začína na veľké alebo malé písmeno: f,
l alebo n. Vo všetkých ostatných prípadoch je hodnota nastavenia
vyhodnotená ako true
.
Poznámka: Nastavenia uvedené v zozname parametrov neskôr prepisujú hodnoty nastavení uvedených skôr.
Pozri aj zdroje uvedené v opise metódy reťazecNaTabuľku
.
názovSúboru
– názov súboru, do ktorého má byť zapísaná tabuľkatabuľka
– dvojrozmerné pole, ktorého obsah je určený na zápisnastavenia
– rôzne (nepovinné) nastavenia; pozri zoznam vyššieIllegalArgumentException
– ak je zadaný nesprávny parameter
nastaveniaIOException
– ak vznikne chyba pri zápise do súborupublic void zapisTabulku(String názovSúboru, String[][] tabuľka, String... nastavenia) throws IOException
Alias pre zapíšTabuľku
.
IOException
public static String tabuľkaNaReťazec(String[][] tabuľka, String... nastavenia)
Prevedie tabuľku na jeden reťazec. Tabuľkou sa v tomto prípade
rozumie dvojrozmerné pole reťazcov. Prevedený reťazec je vhodný na
zapísanie do súboru a dá sa neskôr spätne previesť na dvojrozmerné
pole (tabuľku) prostredníctvom metódy reťazecNaTabuľku
. V kontexte
zápisu do súboru túto metódu využíva metóda zapíšTabuľku
.
Nastavenia:
Táto metóda je navrhnutá tak, aby spolupracovala s metódou
zapíšTabuľku
,
ktorá vnútorne volá túto metódu. Preto nastavenia, ktoré prijíma
a spracúva uvedená metóda nepovažuje za chybné, ale ignoruje
ich.
Inak, ak táto metóda nájde neznáme nastavenie alebo ak niektoré
nastavenie nie je v tvare «názovNastavenia»=
«hodnotaNastavenia», tak vrhne výnimku
IllegalArgumentException
. Toto je
zoznam povolených nastavení:
kódovanie
, kodovanie
, encoding
, charset
, pripojiť
,
pripojit
, append
– ignorované touto metódou; ich
význam je v opise metódy zapíšTabuľku
;formát
, format
– toto nastavenie je skratkou;
kombinuje natavenie viacerých iných nastavení naraz; platnými
hodnotami sú napríklad: "CSV"
, "SSV"
,
"UNX"
…, pričom podrobnosti sú rozpísané nižšie;
oddeľovač
, oddelovac
, separator
–
dovoľuje zmeniť znak oddeľovača údajov; predvoleným oddeľovačom je
tabulátor; ak je hodnota tohto parametra prázdna, tak nastavenie
nie je zmenené – oddeľovač musí byť definovaný;
'\t'
ohraničenie
, ohranicenie
, enclosure
–
zapne ohraničovanie údajov; pre túto metódu ide o prepnutie do
režimu automatického ohraničovania tých buniek tabuľky, ktoré
obsahujú špeciálne znaky, konkrétne: znak oddeľovača (podľa
nastavenia oddeľovač
), únikový znak (podľa nastavenia
únikovýZnak
), znaky nového riadka (LF, '\n'
;
kód znaku 10) a návratu vozíka (CR, '\r'
; kód znaku 13)
a samotný znak ohraničenia, ktorý je v tom prípade v rámci obsahu
bunky zdvojený (ak nie je aktívne nastavenie únikovýVOhraničení
);
únikovýZnak
, unikovyZnak
, escapeChar
–
umožňuje zmeniť predvolený únikový znak \
na zadaný;
zadanie prázdneho reťazca znamená pre túto metódu zastavenie
vkladania únikových sekvencií do údajov – pozor(!), v tom prípade
musí byť buď zapnuté ohraničovanie (pozri nastavenie ohraničenie
vyššie), alebo údaje tabuľky nesmú obsahovať žiadny
špeciálny znak (čítaj ďalej), ktorý by musel byť jedným alebo
druhým spôsobom ošetrený, inak metóda vrhne počas spracovania
údajov výnimku IllegalArgumentException
;
únikovým znakom sú automaticky uvedené tieto špeciálne znaky
v rámci údajov: nový riadok, návrat vozíka, znak oddeľovača
a samotný únikový znak (ktorý je v prípade jeho výskytu zdvojený);
'\\'
únikovýVOhraničení
, unikovyVOhraniceni
,
escapeInEnclosure
– možnosť nastavenia toho, či sa má
alebo nemá brať do úvahy únikový znak v rámci ohraničenia (kvázi
„hodnôt v úvodzovkách“ – pozri nastavenie ohraničenie
)
a aký znak to má byť; ak je toto nastavenie prázdne (predvolený
stav), tak nie sú v rámci ohraničenia používané únikové sekvencie
a samotný znak ohraničenia je odlíšený jeho zdvojením; inak je
použitý zadaný znak a platia rovnaké pravidlá ako pri nastavení
únikovýZnak
;
orezaťZnaky
, orezatZnaky
, trimChars
–
nastaví skupinu znakov, ktoré budú touto metódou aktívne(!) orezané
z hodnôt (údajov buniek) tabuľky pri ich exporte, čo nemusí byť
vždy žiaduce, preto treba toto nastavenie pri tejto metóde používať
obozretne (ak vôbec); ak je vypnuté, tak metóda v žiadnom prípade
nepridáva žiadne znaky do okolia oddeľovačov, v kontexte čoho sa
orezávanie môže zdať zbytočné;
pozor(!), toto nastavenie je filtrované; obidve metódy, ktoré ho
využívajú z neho odfiltrujú rezervované znaky, ktoré nesmú byť
orezávané, pretože majú kľúčový význam pri rozpoznávaní údajov
tabuľky: znaky návratu vozíka a nového riadka (CR, LF), oddeľovača
údajov, znak ohraničenia údajov (ak je toto nastavenie aktívne)
a únikový znak (mimo ohraničenia; ak je toto nastavenie aktívne);
novýRiadok
, novyRiadok
, newline
–
umožňuje nakonfigurovať sekvenciu, ktorá bude použitá na
oddeľovanie riadkov údajov tabuľky; sú povolené len znaky nového
riadka \n (line feed – LF; kód znaku 10) a návratu vozíka \r
(carriage return – CR; kód znaku 13); parameter (nastavenie) môže
obsahovať rôzne tvary, ktoré vyjadrujú tieto dva znaky, konkrétne:
únikové sekvencie (\n, \r), priamo znaky s hodnotami kódov znakov
10 (LF) a 13 (CR), písmená „n“ a „r“ (na veľkosti nezáleží)
v rovnakom význame ako pri únikových sekvenciách alebo sekvencie
„LF“ a „CR“ (na veľkosti písmen nezáleží) tiež vo význame nového
riadka a návratu vozíka; príklady platných nastavení: novýRiadok=CRLF
, novýRiadok=\r\n
, novýRiadok=rn
,
novýRiadok=crn
– výsledkom všetkých uvedených bude
rovnaká sekvencia znakov: CR + LF, čo je bežná kombinácia znakov
v OS Windows; neplatné znakové sekvencie sú ignrované; ak
ignorovaním neplatných sekvencií vznikne prázdny reťazec, tak je
zvolená predvolená kombinácia znakov: \r\n (čiže predvolená pre
Windows);
"\r\n"
BOM
– zadaním prázdnej hodnoty sa dá vypnúť automatické
pridávanie značky endianity (BOM – "\uFEFF"
) na
začiatok údajov; ak je do tohto parametra (nastavenia) zadaná
ľubovoľná neprázdna hodnota, tak bude pridávanie značky
zapnuté;
"\uFEFF"
ohraničKaždúBunku
, ohranicKazduBunku
,
encloseEachCell
– toto nastavenie je typu boolean
– pozri pravidlá rozpoznávania nižšie; ak má tento
parameter (v súlade s nižšie uvedenými pravidlami) výslednú
hodnotu true
a je zapnuté ohraničovanie (pozri parameter
ohraničenie
, ktorého vysvetlenie je zaradené do opisu metódy
reťazecNaTabuľku
, ale
je, samozrejme, platný aj pre túto metódu, ako väčšina ostatných
parametrov), tak metóda ohraničí každú údajovú bunku, nie len tie,
pre ktoré by to bolo nevyhnutné;
false
Pravidlá rozpoznávania pre hodnoty nastavení typu boolean
: Hodnota tohto typu nastavenia je vyhodnotená ako
false
, ak je reťazec hodnoty prázdny, rovný
"0"
alebo ak sa začína na veľké alebo malé písmeno: f,
l alebo n. Vo všetkých ostatných prípadoch je hodnota nastavenia
vyhodnotená ako true
.
Podrobnosti nastavenia formát
:
"CSV"
– formát zodpovedajúci originálnemu formátu
„comma separated values“ (čiarkou oddelené hodnoty) – nastavuje
tieto hodnoty nastavení: "oddeľovač=,"
, "únikovýZnak="
, "ohraničenie=\""
."SSV"
– vymyslený formát, ktorý má zastupovať
skratku „semicolon separated values“ (bodkočiarkou oddelené
hodnoty) – nastavuje tieto hodnoty nastavení: "oddeľovač=;"
, "únikovýZnak="
, "ohraničenie=\""
."UNX"
– zástupný symbol, ktorý vykoná nastavenia
kompatibilné so štýlom CSV súborov používaných v OS Unix („unix
style“) – konkrétne ide nastavenie týchto hodnôt nastavení:
"oddeľovač=,"
, "únikovýZnak=\\"
, "ohraničenie="
."TAB"
– zástupný symbol, ktorý vykoná nastavenia
formátu tabulátormi oddelených hodnôt – konkrétne ide nastavenie
týchto hodnôt nastavení: "oddeľovač=\t"
, "únikovýZnak=\\"
, "ohraničenie="
.Pozri aj zdroje uvedené v opise metódy reťazecNaTabuľku
.
Poznámka: Nastavenia uvedené v zozname parametrov neskôr prepisujú hodnoty nastavení uvedených skôr.
tabuľka
– dvojrozmerné pole reťazcov, ktoré má byť prevedené
na jeden súvislý reťazecnastavenia
– rôzne (nepovinné) nastavenia; pozri zoznam vyššieIllegalArgumentException
– ak je zadaný nesprávny parameter
nastaveniapublic static String tabulkaNaRetazec(String[][] tabuľka, String... nastavenia)
Alias pre tabuľkaNaReťazec
.