-
Pourquoi est-ce nécessaire
RandomAccessFile
?RandomAccessFile
est une classe du package API Java IO, elle vous permet de naviguer, de lire ou d'écrire dans un fichier à votre guise. Vous pouvez également remplacer des parties existantes d'un fichier ; nous parlons de mettre à jour le contenu d'un fichier, ou plus précisément de mettre à jour un fragment de fichier. Cela ne peut pas être fait avecFileInputStream
ouFileOutputStream
, maisRandomAccessFile
vous donnera cette capacité. -
Que se passe-t-il si le fichier à partir duquel il lit
RandomAccessFile
n'existe pas ?Volonté
FileNotFoundException
-
Que se passe-t-il si le fichier dans lequel il écrit
RandomAccessFile
n'existe pas ?Il en créera un nouveau et y écrira.
-
Pourquoi avons-nous besoin d'un cours
StringReader
?La classe Java.io.StringReader est un flux de caractères dont la source est une chaîne.
Représente un flux de caractères dont la source est appelée chaîne
-
Pourquoi avons-nous besoin d'un cours
StringWriter
?public class StringWriter
extends Writer
Un flux de caractères qui collecte sa sortie dans un tampon de chaîne, qui peut ensuite être utilisé pour construire une chaîne.
La fermeture d'un StringWriter n'a aucun effet. Les méthodes de cette classe peuvent être appelées après la fermeture du flux sans générer d'IOException.
Un flux de caractères qui collecte son flux dans un tampon de chaînes, qui peut ensuite être utilisé pour créer une chaîne.
-
Pourquoi avons-nous besoin d'un cours
ByteArrayStream
?Alors,
ByteArrayInputStream
etByteArrayOutputStream
.Ces classes sont essentiellement similaires
StringReader
et< code="">. Il lit uniquement <>StringReader
les caractères (char) d'une chaîne (String), maisByteArrayInputStream
lit les octets d'un tableau d'octets (ByteArray).StringWriter
a écrit des caractères (char) dans une chaîne, maisByteArrayOutputStream
écrit des octets dans un tableau d'octets à l'intérieur de celle-ci. Lors de l'écritureStringWriter
, la chaîne à l'intérieur s'est allongée et lors de l'écriture dansByteArrayOutputStream
son tableau interne, l'octet s'est également développé dynamiquement. -
Pourquoi avons-nous besoin d'un cours
PrintStream
? Nommer les endroits où il est utilisé ?La classe
PrintStream
a été inventée pour afficher les informations de manière lisible. Il se compose presque entièrement de méthodesprint
etprintln
. -
Pourquoi est-ce nécessaire
DynamicProxy
?Java possède une classe spéciale (java.lang.reflect.Proxy) avec laquelle vous pouvez réellement construire un objet au moment de l'exécution (dynamiquement) sans créer de classe distincte pour celui-ci.
-
Comment fonctionne le RMI ?
RMI signifie Invocation de méthode à distance. En d’autres termes, RMI est un mécanisme qui permet à un objet d’une machine Java d’appeler les méthodes d’un objet d’une autre machine Java, même s’ils se trouvent sur des ordinateurs différents, dans différents pays, aux quatre coins du monde.
L'approche traditionnelle consistant à exécuter du code sur d'autres machines à travers un réseau peut prêter à confusion en raison de sa mise en œuvre fastidieuse et sujette aux erreurs. La meilleure façon de réfléchir à ce problème est de supposer que certains objets se trouvent sur une autre machine et que vous pouvez envoyer des messages à ces objets distants et recevoir le résultat comme s'ils se trouvaient sur votre machine locale. Cette simplification est exactement ce que l’invocation de méthode à distance (RMI) vous permet de faire en Java.
Voici un article sur la création de votre propre implémentation RMI : Remote Method Invocation (RMI)
-
Quels types d’objets peuvent être transférés via RMI ?
Les objets doivent implémenter une interface
Serializable
L'invocation de méthode distante est un mécanisme qui permet d'appeler une méthode sur un objet distant. Selon lui, toutes les opérations de préparation et de transmission de données sont encapsulées dans une méthode appelée de l'objet stub client. L'appel de méthode lui-même n'est pas différent de l'appel d'une méthode sur un objet local normal, à quelques exceptions près :
- les objets locaux sont passés par valeur (copies) ;
- lors du transfert d'un
Remote
objet distant ( ), s'il est exporté, le stub de cet objet est transféré ; - les objets passés doivent être
Serializable
; - en plus de toutes les autres situations exceptionnelles, lors de l'appel d'une méthode distante, une exception peut être levée
RemoteException
(erreurs de marshalisation/démarshalisation, erreurs de transfert de données et autres erreurs de protocole possibles) ;
Il convient également de noter que lors de l'appel d'une méthode, nous travaillons avec une interface distante, et non avec une classe distante.
DefNeo
Niveau 36
GO TO FULL VERSION