-
Mengapa ia diperlukan
RandomAccessFile
?RandomAccessFile
ialah kelas dalam pakej Java IO API, ia membolehkan anda menavigasi, membaca daripada, atau menulis ke fail mengikut kehendak anda. Anda juga boleh menggantikan bahagian fail yang sedia ada; kita bercakap tentang mengemas kini kandungan fail, atau lebih tepat tentang mengemas kini serpihan fail. Ini tidak boleh dilakukan denganFileInputStream
atauFileOutputStream
, tetapiRandomAccessFile
akan memberi anda keupayaan ini. -
Apa yang berlaku jika fail yang dibacanya
RandomAccessFile
tidak wujud?akan
FileNotFoundException
-
Apa yang berlaku jika fail tempat ia menulis
RandomAccessFile
tidak wujud?Ia akan mencipta yang baharu dan menulisnya kepadanya.
-
Mengapa kita memerlukan kelas
StringReader
?Kelas Java.io.StringReader ialah aliran aksara yang sumbernya ialah rentetan.
Mewakili aliran aksara yang sumbernya dipanggil rentetan
-
Mengapa kita memerlukan kelas
StringWriter
?public class StringWriter
extends Writer
Strim aksara yang mengumpul outputnya dalam penimbal rentetan, yang kemudiannya boleh digunakan untuk membina rentetan.
Menutup StringWriter tidak mempunyai kesan. Kaedah dalam kelas ini boleh dipanggil selepas aliran ditutup tanpa menghasilkan IOException.
Strim aksara yang mengumpulkan strimnya ke dalam penimbal rentetan, yang kemudiannya boleh digunakan untuk mencipta rentetan.
-
Mengapa kita memerlukan kelas
ByteArrayStream
?Jadi,
ByteArrayInputStream
danByteArrayOutputStream
.Kelas ini pada asasnya serupa dengan
StringReader
dan< code="">. Ia hanya <>StringReader
membaca aksara (char) daripada rentetan (String), tetapiByteArrayInputStream
membaca bait daripada tatasusunan bait (ByteArray).StringWriter
menulis aksara (char) ke dalam rentetan, tetapiByteArrayOutputStream
menulis bait ke dalam tatasusunan bait di dalamnya. Apabila menulis kepadanyaStringWriter
, rentetan di dalamnya dipanjangkan, dan apabila menulis keByteArrayOutputStream
tatasusunan dalamannya, bait juga berkembang secara dinamik. -
Mengapa kita memerlukan kelas
PrintStream
? Namakan tempat di mana ia digunakan?Kelas itu
PrintStream
dicipta untuk memaparkan maklumat dengan cara yang boleh dibaca. Ia hampir keseluruhannya terdiri daripada kaedahprint
danprintln
. -
Mengapa ia diperlukan
DynamicProxy
?Java mempunyai kelas khas (java.lang.reflect.Proxy) yang dengannya anda sebenarnya boleh membina objek pada masa jalan (secara dinamik) tanpa mencipta kelas berasingan untuknya.
-
Bagaimanakah RMI berfungsi?
RMI bermaksud Invokasi Kaedah Jauh. Atau dengan kata lain, RMI ialah mekanisme yang membenarkan objek dalam satu mesin Java untuk memanggil kaedah objek dalam mesin Java yang lain, walaupun ia berada pada komputer yang berbeza, di negara yang berbeza, di sisi dunia yang berbeza.
Традиционный подход к выполнению 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
Tahap
GO TO FULL VERSION