Java : BufferedInputStream con ejemplos
BufferedInputStream (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de BufferedInputStream.
Nota :
- Este artículo puede utilizar software de traducción para su comodidad. Consulte también la versión original en inglés.
Summary
Un BufferedInputStream agrega funcionalidad a otro flujo de entrada, es decir, la capacidad de almacenar en búfer la entrada y admitir los métodos de marcado y restablecimiento. Cuando se crea un BufferedInputStream, se crea una matriz de búfer interna. (Traducción automática)
final var file = Path.of("R:", "java-work", "aaa.data");
System.out.println(file); // R:\java-work\aaa.data
Files.write(file, new byte[]{10, 20, 30});
try (final var is = new BufferedInputStream(Files.newInputStream(file))) {
System.out.println(is.read()); // 10
System.out.println(is.read()); // 20
System.out.println(is.read()); // 30
System.out.println(is.read()); // -1
}
Fields
protected byte[] buf
La matriz de búfer interno donde se almacenan los datos. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected int count
El índice es uno mayor que el índice del último byte válido en el búfer. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected int marklimit
La lectura anticipada máxima permitida después de una llamada al método de marca antes de que las llamadas subsiguientes al método de restablecimiento fallen. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected int markpos
El valor del campo pos en el momento en que se llamó al último método de marca. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected int pos
La posición actual en el buffer. (Traducción automática)
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
Fields declared in FilterInputStream
Constructors
BufferedInputStream (InputStream in)
Crea un BufferedInputStream y guarda su argumento, el flujo de entrada, para su uso posterior. (Traducción automática)
final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.read()); // 10
System.out.println(is.read()); // 20
System.out.println(is.read()); // 30
System.out.println(is.read()); // -1
}
BufferedInputStream (InputStream in, int size)
Crea un BufferedInputStream con el tamaño de búfer especificado y guarda su argumento, el flujo de entrada, para su uso posterior. (Traducción automática)
Please see also : BufferedInputStream(InputStream in)
class MyInputStream extends BufferedInputStream {
MyInputStream(InputStream in) {
super(in);
}
MyInputStream(InputStream in, int size) {
super(in, size);
}
int getBufferSize() {
return buf.length;
}
}
final byte[] buf = {10, 20, 30};
try (final var is = new MyInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.getBufferSize()); // 8192
}
try (final var is = new MyInputStream(new ByteArrayInputStream(buf), 32)) {
System.out.println(is.getBufferSize()); // 32
}
Methods
int available ()
Devuelve una estimación de la cantidad de bytes que se pueden leer (o omitir) de este flujo de entrada sin bloquearse con la próxima invocación de un método para este flujo de entrada. (Traducción automática)
final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.available()); // 3
System.out.println(is.read()); // 10
System.out.println(is.available()); // 2
System.out.println(is.read()); // 20
System.out.println(is.available()); // 1
System.out.println(is.read()); // 30
System.out.println(is.available()); // 0
System.out.println(is.read()); // -1
}
void close ()
Cierra este flujo de entrada y libera cualquier recurso del sistema asociado con el flujo. (Traducción automática)
final var file = Path.of("R:", "java-work", "aaa.data");
Files.write(file, new byte[]{10, 20, 30});
try (final var is = new BufferedInputStream(Files.newInputStream(file))) {
final var ret = is.readAllBytes();
System.out.println(Arrays.toString(ret)); // [10, 20, 30]
}
// An example without a try-with-resources statement.
final var file = Path.of("R:", "java-work", "aaa.data");
Files.write(file, new byte[]{10, 20, 30});
final var is = new BufferedInputStream(Files.newInputStream(file));
try {
final var ret = is.readAllBytes();
System.out.println(Arrays.toString(ret)); // [10, 20, 30]
} finally {
is.close();
}
void mark (int readlimit)
Consulte el contrato general del método de marca de InputStream. (Traducción automática)
final byte[] buf = {10, 20, 30, 40, 50};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.read()); // 10
System.out.println(is.read()); // 20
is.mark(4);
System.out.println(is.read()); // 30
System.out.println(is.read()); // 40
System.out.println(is.read()); // 50
System.out.println(is.read()); // -1
is.reset();
System.out.println(is.read()); // 30
System.out.println(is.read()); // 40
System.out.println(is.read()); // 50
System.out.println(is.read()); // -1
}
boolean markSupported ()
Comprueba si este flujo de entrada admite los métodos de marcar y restablecer. (Traducción automática)
final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.markSupported()); // true
}
int read ()
Consulte el contrato general del método de lectura de InputStream. (Traducción automática)
final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.read()); // 10
System.out.println(is.read()); // 20
System.out.println(is.read()); // 30
System.out.println(is.read()); // -1
}
int read (byte[] b, int off, int len)
Lee bytes de este flujo de entrada de bytes en la matriz de bytes especificada, comenzando en el desplazamiento indicado. (Traducción automática)
final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
final var b1 = new byte[3];
System.out.println(is.read(b1, 0, 1)); // 1
System.out.println(Arrays.toString(b1)); // [10, 0, 0]
final var b2 = new byte[3];
System.out.println(is.read(b2, 0, 2)); // 2
System.out.println(Arrays.toString(b2)); // [20, 30, 0]
final var b3 = new byte[3];
System.out.println(is.read(b3, 0, 3)); // -1
System.out.println(Arrays.toString(b3)); // [0, 0, 0]
}
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
final var b1 = new byte[3];
System.out.println(is.read(b1, 2, 1)); // 1
System.out.println(Arrays.toString(b1)); // [0, 0, 10]
final var b2 = new byte[3];
System.out.println(is.read(b2, 1, 2)); // 2
System.out.println(Arrays.toString(b2)); // [0, 20, 30]
final var b3 = new byte[3];
System.out.println(is.read(b3, 0, 3)); // -1
System.out.println(Arrays.toString(b3)); // [0, 0, 0]
}
void reset ()
Consulte el contrato general del método de reinicio de InputStream. (Traducción automática)
final byte[] buf = {10, 20, 30, 40, 50};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.read()); // 10
System.out.println(is.read()); // 20
is.mark(4);
System.out.println(is.read()); // 30
System.out.println(is.read()); // 40
System.out.println(is.read()); // 50
System.out.println(is.read()); // -1
is.reset();
System.out.println(is.read()); // 30
System.out.println(is.read()); // 40
System.out.println(is.read()); // 50
System.out.println(is.read()); // -1
}
long skip (long n)
Vea el contrato general del método skip de InputStream. (Traducción automática)
final byte[] buf = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
System.out.println(is.read()); // 10
System.out.println(is.skip(1)); // 1
System.out.println(is.read()); // 30
System.out.println(is.skip(2)); // 2
System.out.println(is.read()); // 60
System.out.println(is.skip(3)); // 3
System.out.println(is.read()); // 100
System.out.println(is.skip(1)); // 0
System.out.println(is.read()); // -1
}
Methods declared in FilterInputStream
Methods declared in InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Consulte el siguiente enlace.
Related posts
- Ejemplos de API