-
なぜ必要なのでしょうか
RandomAccessFile
?RandomAccessFile
は Java IO API パッケージ内のクラスであり、これを使用すると、ファイルへの移動、読み取り、書き込みを自由に行うことができます。ファイルの既存の部分を置き換えることもできます。これはファイルの内容の更新、より正確にはファイルのフラグメントの更新について話しています。FileInputStream
これはまたはでは実行できませんFileOutputStream
が、RandomAccessFile
この機能が得られます。 -
読み取り元のファイルが
RandomAccessFile
存在しない場合はどうなりますか?意思
FileNotFoundException
-
書き込み先のファイルが
RandomAccessFile
存在しない場合はどうなりますか?新しいものを作成してそこに書き込みます。
-
なぜクラスが必要なのでしょうか
StringReader
?Java.io.StringReader クラスは、ソースが文字列である文字ストリームです。
ソースが文字列と呼ばれる文字のストリームを表します。
-
なぜクラスが必要なのでしょうか
StringWriter
?public class StringWriter
extends Writer
出力を文字列バッファーに収集する文字ストリーム。これを使用して文字列を構築できます。
StringWriter を閉じても効果はありません。このクラスのメソッドは、ストリームが閉じられた後に IOException を生成せずに呼び出すことができます。
ストリームを文字列のバッファに収集する文字のストリーム。これを使用して文字列を作成できます。
-
なぜクラスが必要なのでしょうか
ByteArrayStream
?それで、
ByteArrayInputStream
そしてByteArrayOutputStream
。これらのクラスは基本的に
StringReader
とに似ています。< code="">。 <>StringReader
文字列 (String) から文字 (char) を読み取るだけですが、ByteArrayInputStream
バイト配列 (ByteArray) からバイトを読み取ります。StringWriter
文字 (char) を文字列に書き込みますが、ByteArrayOutputStream
その中のバイト配列にバイトを書き込みます。それに書き込むとStringWriter
、その中の文字列が長くなり、ByteArrayOutputStream
内部配列に書き込むと、バイトも動的に拡張されました。 -
なぜクラスが必要なのでしょうか
PrintStream
? 使用されている場所に名前を付けますか?このクラスは、
PrintStream
情報を読みやすい方法で表示するために考案されました。ほぼ完全にメソッドと で構成されていprint
ますprintln
。 -
なぜ必要なのでしょうか
DynamicProxy
?Java には特別なクラス (java.lang.reflect.Proxy) があり、これを使用すると、別のクラスを作成しなくても、実行時に (動的に) オブジェクトを実際に構築できます。
-
RMIはどのように機能しますか?
RMI はリモート メソッド呼び出しの略です。言い換えると、RMI は、ある Java マシンのオブジェクトが、別の Java マシンのオブジェクトのメソッドを呼び出すことを可能にするメカニズムです。たとえそれらが別のコンピュータ、別の国、地球の反対側にあったとしてもです。
ネットワーク上の他のマシンでコードを実行する従来のアプローチは、実装が面倒でエラーが発生しやすいため、混乱を招く可能性があります。この問題を考える最良の方法は、一部のオブジェクトが別のマシン上に存在し、これらのリモート オブジェクトにメッセージを送信し、あたかもローカル マシン上に存在するかのように結果を受信できると想定することです。この単純化は、まさにリモート メソッド呼び出し (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
レベル 36
GO TO FULL VERSION