-
Näme üçin zerur
RandomAccessFile
?RandomAccessFile
Java IO API paketindäki synp bolup, bir faýla isleýşiňiz ýaly gezmäge, okamaga ýa-da ýazmaga mümkinçilik berýär. Şeýle hem, bir faýlyň bar bolan böleklerini çalşyp bilersiňiz; bir faýlyň mazmunyny täzelemek ýa-da has dogrusy bir faýlyň böleklerini täzelemek hakda gürleşýäris. Muny edipFileInputStream
ýa-da edip bolmaýarFileOutputStream
, ýöneRandomAccessFile
size bu ukyby berer.Baglanyşyk: RandomAccessFile we onuň mümkinçilikleri
-
Okaýan faýly
RandomAccessFile
ýok bolsa näme bolýar?Islär
FileNotFoundException
-
Wroteazan faýly
RandomAccessFile
ýok bolsa näme bolýar?Täzesini döreder we oňa ýazar.
-
Näme üçin synp gerek
StringReader
?Java.io.StringReader synpy, çeşmesi setir bolan simwol akymydyr.
Çeşmesi setir diýilýän nyşanlaryň akymyny aňladýar
-
Näme üçin synp gerek
StringWriter
?public class StringWriter
extends Writer
Çykyşyny setir buferinde ýygnaýan simwol akymy, soň bolsa setir gurmak üçin ulanylyp bilner.
“StringWriter” -iň ýapylmagynyň hiç hili täsiri ýok. Bu synpdaky usullar, IOException döretmezden akym ýapylansoň çagyrylyp bilner.
Akymyny setirleriň buferine ýygnaýan simwollar akymy, soň bolsa setir döretmek üçin ulanylyp bilner.
-
Näme üçin synp gerek
ByteArrayStream
?Şeýlelikde
ByteArrayInputStream
weByteArrayOutputStream
.Bu synplar esasan
StringReader
we< code="">. Diňe <>StringReader
setirden (setir) nyşanlary (char) okaýar, ýöneByteArrayInputStream
baýt massiwinden (ByteArray) baýt okaýar.StringWriter
nyşanlary (char) setirde ýazdy, ýöneByteArrayOutputStream
içindäki baýt massiwine baýt ýazdy. Oňa ýazylandaStringWriter
içindäki setir uzaldy we içerki massiwine ýazylandaByteArrayOutputStream
baýt hem dinamiki taýdan giňeldi. -
Näme üçin synp gerek
PrintStream
? Ulanylýan ýerleriniň adyny aýdyň?Synp
PrintStream
maglumatlary okalýan görnüşde görkezmek üçin oýlanyp tapyldy. Tutuşlygyna diýen ýaly usullardanprint
weprintln
. -
Näme üçin zerur
DynamicProxy
?Java-da ýörite synp bar (java.lang.reflect.Proxy), bu iş üçin aýratyn synp döretmezden iş wagty (dinamiki) bir obýekt gurup bilersiňiz.
-
RMI nähili işleýär?
RMI uzakdaky usul çagyryşyny aňladýar. Ora-da başga bir söz bilen aýdylanda, RMI bir Java enjamyndaky bir obýektiň, dürli kompýuterlerde, dürli ýurtlarda, obeer şarynyň dürli künjeklerinde ýerleşse-de, başga bir Java enjamynda bir obýektiň usullaryny çagyrmaga mümkinçilik berýän mehanizmdir.
Традиционный подход к выполнению codeа на других машинах, разнесенных по сети может смутить из-за своей нудной и склонной к ошибкам реализации. Лучший способ рассмотреть эту проблему состоит в предположении, что некоторые an objectы располагаются на другой машине, и что вы можете посылать messages этим удаленным an objectм и получать результат, How будто они располагаются на вашей локальной машине. Это упрощение в точности является тем, что позволяет делать Удаленный Вызов Методов (RMI) в Java.
Вот статья по созданию собственной реализации RMI: Удаленный вызов методов (RMI)
-
Объекты Howих типов можно передавать по RMI?
Объекты должны имплементировать интерфейс
Serializable
Remote method Invocation — механизм, который позволяет вызывать метод удалённого an object. Согласно ему, все операции по подготовке и передаче данных инкапсулируются в вызываемом методе клиентского an object-заглушки (stub). Сам же вызов метода ничем не отличается от вызова метода обычного локального an object, за небольшим исключением:
- локальные an objectы передаются по значению (копии);
- при передаче удалённого (
Remote
) an object, если он экспортирован, передаётся stub этого an object; - передаваемые an objectы должны быть
Serializable
; - кроме всех прочих исключительных ситуаций, при вызове удалённого метода может возбуждаться исключение
RemoteException
(ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);
Так же нужно отметить, что при вызове метода мы работаем с удалённым интерфейсом, а не с удалённым классом.
DefNeo
Dereje
GO TO FULL VERSION