-
Warum wird es benötigt
RandomAccessFile
?RandomAccessFile
ist eine Klasse im Java IO API-Paket, mit der Sie nach Belieben in einer Datei navigieren, aus ihr lesen oder in sie schreiben können. Sie können auch vorhandene Teile einer Datei ersetzen; wir sprechen von der Aktualisierung des Inhalts einer Datei, genauer gesagt von der Aktualisierung eines Fragments einer Datei.FileInputStream
Dies ist mit oder nicht möglichFileOutputStream
, aberRandomAccessFile
Sie erhalten diese Fähigkeit. -
Was passiert, wenn die Datei, aus der gelesen wird,
RandomAccessFile
nicht existiert?Wille
FileNotFoundException
-
Was passiert, wenn die Datei, in die geschrieben wird,
RandomAccessFile
nicht existiert?Es wird ein neues erstellt und darauf geschrieben.
-
Warum brauchen wir eine Klasse
StringReader
?Die Klasse Java.io.StringReader ist ein Zeichenstrom, dessen Quelle eine Zeichenfolge ist.
Stellt einen Zeichenstrom dar, dessen Quelle als Zeichenfolge bezeichnet wird
-
Warum brauchen wir eine Klasse
StringWriter
?public class StringWriter
extends Writer
Ein Zeichenstrom, der seine Ausgabe in einem Zeichenfolgenpuffer sammelt, der dann zum Erstellen einer Zeichenfolge verwendet werden kann.
Das Schließen eines StringWriter hat keine Auswirkung. Die Methoden in dieser Klasse können aufgerufen werden, nachdem der Stream geschlossen wurde, ohne dass eine IOException generiert wird.
Ein Zeichenstrom, der seinen Strom in einem Zeichenfolgenpuffer sammelt, der dann zum Erstellen einer Zeichenfolge verwendet werden kann.
-
Warum brauchen wir eine Klasse
ByteArrayStream
?So
ByteArrayInputStream
undByteArrayOutputStream
.Diese Klassen ähneln im Wesentlichen
StringReader
und< code="">. Es liest nur <>StringReader
Zeichen (char) aus einer Zeichenfolge (String),ByteArrayInputStream
liest jedoch Bytes aus einem Byte-Array (ByteArray).StringWriter
hat Zeichen (char) in einen String geschrieben,ByteArrayOutputStream
schreibt aber Bytes in ein darin enthaltenes Byte-Array. Beim SchreibenStringWriter
wurde die darin enthaltene Zeichenfolge verlängert, und beim Schreiben inByteArrayOutputStream
das interne Array wurde das Byte ebenfalls dynamisch erweitert. -
Warum brauchen wir eine Klasse
PrintStream
? Nennen Sie die Einsatzorte?Die Klasse
PrintStream
wurde erfunden, um Informationen lesbar darzustellen. Es besteht fast ausschließlich aus Methodenprint
undprintln
. -
Warum wird es benötigt
DynamicProxy
?Java verfügt über eine spezielle Klasse (java.lang.reflect.Proxy), mit der Sie tatsächlich ein Objekt zur Laufzeit (dynamisch) erstellen können, ohne eine separate Klasse dafür zu erstellen.
-
Wie funktioniert RMI?
RMI steht für Remote Method Invokation. Oder mit anderen Worten: RMI ist ein Mechanismus, der es einem Objekt in einer Java-Maschine ermöglicht, Methoden eines Objekts in einer anderen Java-Maschine aufzurufen, selbst wenn diese sich auf verschiedenen Computern, in verschiedenen Ländern oder auf verschiedenen Seiten der Welt befinden.
Традиционный подход к выполнению Codeа на других машинах, разнесенных по сети может смутить из-за своей нудной и склонной к ошибкам реализации. Лучший способ рассмотреть эту проблему состоит в предположении, что некоторые ein Objektы располагаются на другой машине, и что вы можете посылать Mitteilungen этим удаленным ein Objektам и получать результат, Wie будто они располагаются на вашей локальной машине. Это упрощение в точности является тем, что позволяет делать Удаленный Вызов Методов (RMI) в Java.
Вот статья по созданию собственной реализации RMI: Удаленный вызов методов (RMI)
-
Объекты Wieих типов можно передавать по RMI?
Объекты должны имплементировать интерфейс
Serializable
Remote method Invocation — механизм, который позволяет вызывать метод удалённого ein Objektа. Согласно ему, все операции по подготовке и передаче данных инкапсулируются в вызываемом методе клиентского ein Objektа-заглушки (stub). Сам же вызов метода ничем не отличается от вызова метода обычного локального ein Objektа, за небольшим исключением:
- локальные ein Objektы передаются по значению (копии);
- при передаче удалённого (
Remote
) ein Objektа, если он экспортирован, передаётся stub этого ein Objektа; - передаваемые ein Objektы должны быть
Serializable
; - кроме всех прочих исключительных ситуаций, при вызове удалённого метода может возбуждаться исключение
RemoteException
(ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);
Так же нужно отметить, что при вызове метода мы работаем с удалённым интерфейсом, а не с удалённым классом.
DefNeo
Level 36
GO TO FULL VERSION