SubStream Classe
- java.
lang. Object - InputStream
- com.
microsoft. azure. storage. blob. SubStream
- com.
public class SubStream
Récapitulatif du constructeur
Constructeur | Description |
---|---|
SubStream(InputStream source, long startIndex, long streamLength, Object lock) |
Crée un sous-flux instance qui partitionne le flux encapsulé de jusqu’à . Chaque sous-flux instance qui encapsule le même sous-jacent doit partager la même exclusion mutuelle pour éviter les conditions de concurrence des opérations simultanées. |
Résumé de la méthode
Modificateur et type | Méthode et description |
---|---|
void |
close()
Ferme le sous-flux. |
InputStream | getInputStream() |
long | getLength() |
synchronized void |
mark(int readlimit)
Marque la position actuelle dans le sous-flux. Un appel suivant à la méthode repositionnera le flux vers cette position stockée. |
boolean |
markSupported()
La classe wrapper de sous-flux n’est compatible qu’avec les flux d’entrée pouvant être marqués et retourne donc toujours true. Cette exigence est appliquée dans le constructeur de classe. |
int |
read()
Lit l’octet suivant des données à partir du flux encapsulé. L’octet de valeur est retourné sous la forme d’un dans la plage à . Si aucun octet n’est disponible car la fin du sous-flux a été atteinte, la valeur est retournée. Cette méthode bloque jusqu’à ce que les données d’entrée soient disponibles, que la fin du flux soit détectée ou qu’une exception soit levée. |
synchronized int |
read(byte[] b)
Lit un certain nombre d’octets du flux encapsulé et les stocke dans le tableau de mémoires tampons . Le nombre d’octets effectivement lus est retourné sous forme d’entier. Cette méthode bloque jusqu’à ce que les données d’entrée soient disponibles, que la fin du fichier soit détectée ou qu’une exception soit levée. Si la longueur de est égale à zéro, aucun octet n’est lu et retourné ; sinon, il y a une tentative de lecture d’au moins un octet. Si aucun octet n’est disponible, car le sous-flux se trouve à la fin du fichier, la valeur est retournée ; sinon, au moins un octet est lu et stocké dans . La première lecture d’octet est stockée dans l’élément , la suivante dans , et ainsi de suite. Le nombre d’octets lus est, au plus, égal à la longueur de . Soit k le nombre d’octets effectivement lus ; ces octets seront stockés dans des éléments via k, laissant les éléments k à non affectés. La méthode pour la classe a le même effet que : |
synchronized int |
read(byte[] b, int off, int len)
Lit jusqu’à des octets de données à partir du sous-flux. Met en mémoire tampon les données du flux encapsulé afin de réduire la surcharge d’saut et de lecture. Le wrappedstream est appelé uniquement si readBuffer ne peut pas répondre à la demande de lecture. Pour garantir des résultats valides, le flux encapsulé doit être marqué avant la lecture à partir du sous-flux. Cela nous permet de rétablir la position relative du sous-flux dans le flux encapsulé. Le nombre d’octets réellement lus est retourné sous la forme d’un entier. Toutes ces opérations sont effectuées de manière synchrone dans un verrou intrinsèque pour garantir que d’autres demandes simultanées par les instances de sous-flux n’entraînent pas de conditions de concurrence. L’appel sous-jacent à la lecture du flux encapsulé se bloque jusqu’à ce que les données d’entrée soient disponibles, que la fin du fichier soit détectée ou qu’une exception soit levée. Si est égal à zéro, aucun octet n’est lu et est retourné ; dans le cas contraire, il y a une tentative de lecture d’au moins un octet. Si aucun octet n’est disponible, car le sous-flux se trouve à la fin du fichier, la valeur est retournée ; sinon, au moins un octet est lu et stocké dans . |
synchronized void |
reset()
Repositionne la position de sous-flux sur l’index où la méthode a été appelée pour la dernière fois. La nouvelle position de réinitialisation sur le sous-flux n’entre pas en vigueur avant les lectures suivantes. |
long |
skip(long n)
Avance la position actuelle du sous-flux de . La méthode n’appelle pas la méthode sous-jacente de la classe de flux encapsulée. Le saut réel d’octets sera pris en compte lors des opérations de lecture de sous-flux suivantes. |
Détails du constructeur
SubStream
public SubStream(InputStream source, long startIndex, long streamLength, Object lock)
Crée un sous-flux instance qui partitionne le flux encapsulé de jusqu’à . Chaque sous-flux instance qui encapsule le même sous-jacent doit partager la même exclusion mutuelle pour éviter les conditions de concurrence des opérations simultanées.
Parameters:
Détails de la méthode
close
public void close()
Ferme le sous-flux.
getInputStream
public InputStream getInputStream()
getLength
public long getLength()
mark
public synchronized void mark(int readlimit)
Marque la position actuelle dans le sous-flux. Un appel suivant à la méthode repositionnera le flux vers cette position stockée.
Parameters:
markSupported
public boolean markSupported()
La classe wrapper de sous-flux n’est compatible qu’avec les flux d’entrée pouvant être marqués et retourne donc toujours true. Cette exigence est appliquée dans le constructeur de classe.
Returns:
true
read
public int read()
Lit l’octet suivant des données à partir du flux encapsulé. L’octet de valeur est retourné sous la forme d’un dans la plage à . Si aucun octet n’est disponible car la fin du sous-flux a été atteinte, la valeur est retournée. Cette méthode bloque jusqu’à ce que les données d’entrée soient disponibles, que la fin du flux soit détectée ou qu’une exception soit levée.
Returns:
-1
si la fin du sous-flux est atteinte.Throws:
read
public synchronized int read(byte[] b)
Lit un certain nombre d’octets du flux encapsulé et les stocke dans le tableau de mémoires tampons . Le nombre d’octets effectivement lus est retourné sous forme d’entier. Cette méthode bloque jusqu’à ce que les données d’entrée soient disponibles, que la fin du fichier soit détectée ou qu’une exception soit levée.
Si la longueur de est égale à zéro, aucun octet n’est lu et retourné ; sinon, il y a une tentative de lecture d’au moins un octet. Si aucun octet n’est disponible, car le sous-flux se trouve à la fin du fichier, la valeur est retournée ; sinon, au moins un octet est lu et stocké dans .
La première lecture d’octet est stockée dans l’élément , la suivante dans , et ainsi de suite. Le nombre d’octets lus est, au plus, égal à la longueur de . Soit k le nombre d’octets effectivement lus ; ces octets seront stockés dans des éléments via k, laissant les éléments k à non affectés.
La méthode pour la classe a le même effet que :
Parameters:
Returns:
-1
s’il n’y a plus de données, car la fin du flux a été atteinte.Throws:
b
a la valeur null
.
read
public synchronized int read(byte[] b, int off, int len)
Lit jusqu’à des octets de données à partir du sous-flux. Met en mémoire tampon les données du flux encapsulé afin de réduire la surcharge d’saut et de lecture. Le wrappedstream est appelé uniquement si readBuffer ne peut pas répondre à la demande de lecture. Pour garantir des résultats valides, le flux encapsulé doit être marqué avant la lecture à partir du sous-flux. Cela nous permet de rétablir la position relative du sous-flux dans le flux encapsulé. Le nombre d’octets réellement lus est retourné sous la forme d’un entier. Toutes ces opérations sont effectuées de manière synchrone dans un verrou intrinsèque pour garantir que d’autres demandes simultanées par les instances de sous-flux n’entraînent pas de conditions de concurrence.
L’appel sous-jacent à la lecture du flux encapsulé se bloque jusqu’à ce que les données d’entrée soient disponibles, que la fin du fichier soit détectée ou qu’une exception soit levée.
Si est égal à zéro, aucun octet n’est lu et est retourné ; dans le cas contraire, il y a une tentative de lecture d’au moins un octet. Si aucun octet n’est disponible, car le sous-flux se trouve à la fin du fichier, la valeur est retournée ; sinon, au moins un octet est lu et stocké dans .
Parameters:
b
au niveau duquel les données sont écrites.
Returns:
-1
s’il n’y a plus de données, car la fin du flux a été atteinte.Throws:
b
est null
.
off
est négatif, len
est négatif ou len
est supérieur à b.length - off
reset
public synchronized void reset()
Repositionne la position de sous-flux sur l’index où la méthode a été appelée pour la dernière fois.
La nouvelle position de réinitialisation sur le sous-flux n’entre pas en vigueur avant les lectures suivantes.
skip
public long skip(long n)
Avance la position actuelle du sous-flux de . La méthode n’appelle pas la méthode sous-jacente de la classe de flux encapsulée. Le saut réel d’octets sera pris en compte lors des opérations de lecture de sous-flux suivantes.
Parameters:
Returns:
S’applique à
Azure SDK for Java