-
¿Por qué es necesario
RandomAccessFile
?RandomAccessFile
es una clase en el paquete Java IO API, le permite navegar, leer o escribir en un archivo como desee. También puedes reemplazar partes existentes de un archivo; estamos hablando de actualizar el contenido de un archivo, o más precisamente de actualizar un fragmento de un archivo. Esto no se puede hacer conFileInputStream
oFileOutputStream
, peroRandomAccessFile
te dará esta habilidad. -
¿Qué pasa si el archivo del que lee
RandomAccessFile
no existe?Voluntad
FileNotFoundException
-
¿Qué pasa si el archivo donde escribe
RandomAccessFile
no existe?Creará uno nuevo y lo escribirá en él.
-
¿ Por qué necesitamos una clase
StringReader
?La clase Java.io.StringReader es un flujo de caracteres cuya fuente es una cadena.
Representa una secuencia de caracteres cuyo origen se llama cadena.
-
¿ Por qué necesitamos una clase
StringWriter
?public class StringWriter
extends Writer
Un flujo de caracteres que recopila su salida en un búfer de cadena, que luego puede usarse para construir una cadena.
Cerrar un StringWriter no tiene ningún efecto. Los métodos de esta clase se pueden llamar después de que se haya cerrado la secuencia sin generar una IOException.
Una secuencia de caracteres que recopila su secuencia en un búfer de cadenas, que luego puede usarse para crear una cadena.
-
¿ Por qué necesitamos una clase
ByteArrayStream
?ByteArrayInputStream
Y entoncesByteArrayOutputStream
.Estas clases son esencialmente similares
StringReader
y< code="">. Solo <>StringReader
lee caracteres (char) de una cadena (String), peroByteArrayInputStream
lee bytes de una matriz de bytes (ByteArray).StringWriter
escribió caracteres (char) en una cadena, peroByteArrayOutputStream
escribe bytes en una matriz de bytes dentro de ella. Al escribir enStringWriter
él, la cadena dentro de él se alargó y al escribir enByteArrayOutputStream
su matriz interna, el byte también se expandió dinámicamente. -
¿ Por qué necesitamos una clase
PrintStream
? ¿Nombra los lugares donde se usa?La clase
PrintStream
fue inventada para mostrar información de manera legible. Se compone casi en su totalidad de métodosprint
yprintln
. -
¿Por qué es necesario
DynamicProxy
?Java tiene una clase especial (java.lang.reflect.Proxy) con la que puedes construir un objeto en tiempo de ejecución (dinámicamente) sin crear una clase separada para él.
-
¿Cómo funciona RMI?
RMI significa Invocación de método remoto. O en otras palabras, RMI es un mecanismo que permite que un objeto en una máquina Java llame a métodos de un objeto en otra máquina Java, incluso si están en diferentes computadoras, en diferentes países, en diferentes lados del mundo.
El enfoque tradicional para ejecutar código en otras máquinas a través de una red puede resultar confuso debido a su implementación tediosa y propensa a errores. La mejor manera de pensar en este problema es asumir que algunos objetos están ubicados en otra máquina y que puede enviar mensajes a estos objetos remotos y recibir el resultado como si estuvieran ubicados en su máquina local. Esta simplificación es exactamente lo que la Invocación de método remoto (RMI) le permite hacer en Java.
Вот статья по созданию собственной реализации RMI: Удаленный вызов методов (RMI)
-
Объекты Cómoих типов можно передавать по RMI?
Объекты должны имплементировать интерфейс
Serializable
Remote method Invocation — механизм, который позволяет вызывать метод удалённого un objetoа. Согласно ему, все операции по подготовке и передаче данных инкапсулируются в вызываемом методе клиентского un objetoа-заглушки (stub). Сам же вызов метода ничем не отличается от вызова метода обычного локального un objetoа, за небольшим исключением:
- локальные un objetoы передаются по значению (копии);
- при передаче удалённого (
Remote
) un objetoа, если он экспортирован, передаётся stub этого un objetoа; - передаваемые un objetoы должны быть
Serializable
; - кроме всех прочих исключительных ситуаций, при вызове удалённого метода может возбуждаться исключение
RemoteException
(ошибки маршализации/демаршализации, передачи данных и другие возможные ошибки протокола);
Так же нужно отметить, что при вызове метода мы работаем с удалённым интерфейсом, а не с удалённым классом.
DefNeo
Nivel 36
GO TO FULL VERSION