-
Эмне үчүн керек
RandomAccessFile
?RandomAccessFile
Java IO API топтомундагы класс, ал файлды каалагандай багыттоого, окууга же жазууга мүмкүндүк берет. Сиз ошондой эле файлдын учурдагы бөлүктөрүн алмаштыра аласыз; биз файлдын мазмунун жаңыртуу жөнүндө, тагыраак айтканда, файлдын фрагментин жаңылоо жөнүндө болуп жатабыз.FileInputStream
Муну же менен жасоо мүмкүн эмесFileOutputStream
, бирокRandomAccessFile
сизге бул жөндөмдү берет. -
Эгер ал окуган файл
RandomAccessFile
жок болсо эмне болот?Will
FileNotFoundException
-
Ал жазган файл
RandomAccessFile
жок болсо эмне болот?Ал жаңысын түзүп, ага жазат.
-
Эмне үчүн бизге класс керек
StringReader
?Java.io.StringReader классы булагы сап болгон символдордун агымы.
Булагы сап деп аталган символдордун агымын билдирет
-
Эмне үчүн бизге класс керек
StringWriter
?public class StringWriter
extends Writer
Чыгарылганын сап буферине чогултуучу символдук агым, андан кийин сапты куруу үчүн колдонулушу мүмкүн.
StringWriterди жабуунун эч кандай таасири жок. Бул класстагы ыкмаларды IOException жаратпастан агым жабылгандан кийин чакырса болот.
Өзүнүн агымын саптардын буферине чогулткан символдордун агымы, андан кийин сапты түзүү үчүн колдонулушу мүмкүн.
-
Эмне үчүн бизге класс керек
ByteArrayStream
?Ошентип,
ByteArrayInputStream
жанаByteArrayOutputStream
.Бул класстар негизинен окшош
StringReader
жана< code="">. <>StringReader
Ал саптан (String) символдорду (char) гана окуйт, бирокByteArrayInputStream
byte массивинен (ByteArray) byteтарды окуйт.StringWriter
сапка символдорду (char) жазган, бирокByteArrayOutputStream
анын ичиндеги byte массивине byteтарды жазат. Ага жазгандаStringWriter
анын ичиндеги сап узартылган, ал эмиByteArrayOutputStream
анын ички массивине жазганда byte да динамикалык түрдө кеңейген. -
Эмне үчүн бизге класс керек
PrintStream
? Колдонулган жерлерди атагыла?Класс
PrintStream
маалыматты окууга ыңгайлуу кылып көрсөтүү үчүн ойлоп табылган. Ал дээрлик толугу менен ыкмаларданprint
жанаprintln
. -
Эмне үчүн керек
DynamicProxy
?Javaда атайын класс (java.lang.reflect.Proxy) бар, анын жардамы менен an objectти иштөө убагында (динамикалык түрдө) ал үчүн өзүнчө класс түзбөстөн түзө аласыз.
-
RMI кантип иштейт?
RMI Remote Method Invokation дегенди билдирет. Же башкача айтканда, RMI бул бир Java машинасындагы an objectке башка Java машинасындагы an objectтин ыкмаларын чакырууга мүмкүндүк берүүчү механизм, ал тургай, алар ар кайсы компьютерлерде, ар кайсы өлкөлөрдө, жер шарынын ар кайсы бурчтарында жайгашкан.
Традиционный подход к выполнению 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
Деңгээл
GO TO FULL VERSION