[ Pobierz całość w formacie PDF ]

 zablokowanym wcze niej przez inn aplikacj .
W niektórych systemach nie jest mo liwe zablokowanie dost pu do mapy pliku
w pami ci.
Blokady plików s przydzielane na poziomie maszyny wirtualnej Java. Je li zatem
dwa programy dzia aj na tej samej maszynie wirtualnej, to nie mog uzyska blokady
tego samego pliku. Metody lock i tryLock wyrzuc wyj tek OverlappingFile
LockException w sytuacji, gdy maszyna wirtualna jest ju w posiadaniu blokady
danego pliku.
W niektórych systemach zamkni cie kana u zwalnia wszystkie blokady pliku
b d ce w posiadaniu maszyny wirtualnej Java. Dlatego te nale y unika wielu
kana ów dost pu do tego samego, zablokowanego pliku.
Dzia anie blokad plików w sieciowych systemach plików zale y od konkretnego
systemu i dlatego nale y unika stosowania blokad w takich systemach.
java.nio.channels.FileChannel 1.4
FileLock lock()
uzyskuje wy czn blokad pliku. Blokuje dzia anie programu do momentu
uzyskania blokady.
FileLock tryLock()
uzyskuje wy czn blokad ca ego pliku lub zwraca null, je li nie mo e uzyska
blokady.
FileLock lock(long position, long size, boolean shared)
FileLock tryLock(long position, long size, boolean shared)
uzyskuje blokad dost pu do fragmentu pliku. Pierwsza wersja blokuje dzia anie
programu do momentu uzyskania blokady, a druga zwraca natychmiast warto
null, je li nie mo e uzyska od razu blokady.
Parametry: position pocz tek blokowanego fragmentu
size rozmiar blokowanego fragmentu

Rozdzia 1. Strumienie i pliki 93
shared warto true dla blokady wspó dzielonej, false
dla wy cznej
java.nio.channels.FileLock 1.4
void release()
zwalnia blokad .
Wyra enia regularne
Wyra enia regularne stosujemy do okre lenia wzorców wyst puj cych w a cuchach znaków.
U ywamy ich najcz ciej wtedy, gdy potrzebujemy odnale a cuchy zgodne z pewnym
wzorcem. Na przyk ad jeden z naszych przyk adowych programów odnajdywa w pliku HTML
wszystkie hiper cza, wyszukuj c a cuchy zgodne ze wzorcem .
Oczywi cie zapis ... nie jest wystarczaj co precyzyjny. Specyfikuj c wzorzec, musimy
dok adnie okre li znaki, które s dopuszczalne. Dlatego te opis wzorca wymaga zastoso-
wania odpowiedniej sk adni.
Oto prosty przyk ad. Z wyra eniem regularnym
[Jj]ava.+
mo e zosta uzgodniony dowolny a cuch znaków nast puj cej postaci:
Pierwsz jego liter jest J lub j.
Nast pne trzy litery to ava.
Pozosta a cz a cucha mo e zawiera jeden lub wi cej dowolnych znaków.
Na przyk ad a cuch "javanese" zostanie dopasowany do naszego wyra enia regularnego,
"Core Java" ju nie.
Aby pos ugiwa si wyra eniami regularnymi, musimy nieco bli ej pozna ich sk adni . Na
szcz cie na pocz tek wystarczy kilka do oczywistych konstrukcji.
Przez klas znaków rozumiemy zbiór alternatywnych znaków uj ty w nawiasy
kwadratowe, na przyk ad [Jj], [0-9], [A-Za-z] czy [^0-9]. Znak - oznacza zakres
(czyli wszystkie znaki, których kody Unicode le w podanych granicach), a znak ^
oznacza dope nienie (wszystkie znaki oprócz podanych).
Istnieje wiele wst pnie zdefiniowanych klas znaków, takich jak \d (cyfry) czy \p{Sc}
(symbol waluty w Unicode). Patrz przyk ady w tabelach 1.7 i 1.8.
Wi kszo znaków oznacza sam siebie, tak jak znaki ava w poprzednim przyk adzie.
Symbol . oznacza dowolny znak (z wyj tkiem, by mo e, znaków ko ca wiersza,
co zale y od stanu odpowiedniego znacznika).
94 Java. Techniki zaawansowane
Tabela 1.7. Sk adnia wyra e regularnych
Sk adnia Obja nienie
Znaki
c Znak c.
\unnnn, \xnn, \0n, \0nn, \0nnn Znak o kodzie, którego warto zosta a podana w notacji szesnastkowej
lub ósemkowej.
\t, \n, \r, \f, \a, \e Znaki steruj ce tabulatora, nowego wiersza, powrotu karetki, ko ca strony,
alertu i sekwencji steruj cej.
\cc Znak steruj cy odpowiadaj cy znakowi c.
Klasy znaków
[C1C2. . .] Dowolny ze znaków reprezentowanych przez C1C2. . ., gdzie Ci jest znakiem,
zakresem znaków (c1-c2) lub klas znaków.
[^. . .] Dope nienie klasy znaków.
[. . .&&. . .] Cz wspólna (przeci cie) dwóch klas znaków.
Wst pnie zdefiniowane klasy znaków
. Dowolny znak oprócz ko cz cego wiersz (lub dowolny znak, je li znacznik
DOTALL zosta ustawiony).
\d Cyfra [0-9].
\D Znak, który nie jest cyfr [^0-9].
\s Znak odst pu [ \t\n\r\f\x0B].
\S Znak, który nie jest odst pem.
\w Znak s owa [a-zA-Z0-9_].
\W Znak inny ni znak s owa.
\p{nazwa} Klasa znaków o podanej nazwie (patrz tabela 1.8).
\P{nazwa} Dope nienie klasy znaków o podanej nazwie.
Granice dopasowania
^ $ Pocz tek, koniec wej cia (lub pocz tek, koniec wiersza w trybie
wielowierszowym).
\b Granica s owa.
\B Granica inna ni s owa.
\A Pocz tek wej cia.
\z Koniec wej cia.
\Z Koniec wej cia oprócz ostatniego zako czenia wiersza.
\G Koniec poprzedniego dopasowania.
Kwantyfikatory
X? Opcjonalnie X.

Rozdzia 1. Strumienie i pliki 95
Tabela 1.7. Sk adnia wyra e regularnych  ci g dalszy
Sk adnia Obja nienie
X* X, 0 lub wi cej razy.
X+ X, 1 lub wi cej razy.
X{n} X{n,} X{n,m} X n razy, co najmniej n razy, pomi dzy n i m razy.
Przyrostki kwantyfikatora
? Powoduje dopasowanie najmniejszej liczby wyst pie .
+ Powoduje dopasowanie najwi kszej liczby wyst pie , nawet kosztem
ogólnego powodzenia dopasowania.
Operacje na zbiorach
XY Dowolny a cuch z X, po którym nast puje dowolny a cuch z Y.
X|Y Dowolny a cuch z X lub Y.
Grupowanie
(X) Grupa.
\n Dopasowanie n-tej grupy.
Sekwencje steruj ce
\c Znak c (nie mo e by znakiem alfabetu).
\Q...\E Cytat& dos ownie.
(?...) Specjalna konstrukcja  patrz opis klasy Pattern.
Tabela 1.8. Wst pnie zdefiniowane nazwy klas znaków
Nazwa klasy znaków Obja nienie
Lower Ma e litery ASCII [a-z]
Upper Du e litery ASCII [A-Z]
Alpha Litery alfabetu ASCII [A-Za-z]
Digit Cyfry ASCII [0-9]
Alnum Litery alfabetu b d cyfry ASCII [A-Za-z0-9]
XDigit Cyfry szesnastkowe [0-9A-Fa-f]
Print lub Graph Znaki ASCII posiadaj ce reprezentacj graficzn (na wydruku) [\x21-\x7E] [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tibiahacks.keep.pl