Java : DataOutput con ejemplos
DataOutput (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de DataOutput.
Nota :
- Este artículo puede utilizar software de traducción para su comodidad. Consulte también la versión original en inglés.
Summary
La interfaz DataOutput permite convertir datos de cualquiera de los tipos primitivos de Java en una serie de bytes y escribir estos bytes en un flujo binario. También existe una función para convertir una cadena en formato UTF-8 modificado y escribir la serie de bytes resultante. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeByte(0xff);
target.writeInt(0x12345678);
target.writeUTF("abcd");
}
final var bytes = out.toByteArray();
// [ff, 12, 34, 56, 78, 00, 04, 61, 62, 63, 64]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
Methods
void write (byte[] b)
Escribe en el flujo de salida todos los bytes de la matriz b. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
final byte[] b1 = {10, 20};
target.write(b1);
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
final byte[] b2 = {30, 40, 50};
target.write(b2);
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30, 40, 50]
}
void write (byte[] b, int off, int len)
Escribe len bytes de la matriz b, en orden, en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
final byte[] b = {10, 20, 30, 40, 50};
target.write(b, 0, 2);
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
target.write(b, 2, 3);
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30, 40, 50]
}
void write (int b)
Escribe en el flujo de salida los ocho bits de orden inferior del argumento b. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.write(10);
target.write(20);
target.write(30);
}
System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30]
void writeBoolean (boolean v)
Escribe un valor booleano en este flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeBoolean(true);
target.writeBoolean(false);
}
final var bytes = out.toByteArray();
// [01, 00]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeByte (int v)
Escribe en el flujo de salida los ocho bits de orden inferior del argumento v. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeByte(0x10);
target.writeByte(0x20);
target.writeByte(0xff);
}
final var bytes = out.toByteArray();
// [10, 20, ff]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeBytes (String s)
Escribe una cadena en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeBytes("abc");
target.writeBytes("○△×");
}
final var bytes = out.toByteArray();
// [61, 62, 63, cb, b3, d7]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeChar (int v)
Escribe un valor de carácter, que consta de dos bytes, en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeChar('a');
target.writeChar('b');
target.writeChar('○');
target.writeChar('△');
}
final var bytes = out.toByteArray();
// [00, 61, 00, 62, 25, cb, 25, b3]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeChars (String s)
Escribe cada carácter de la cadena s, en el flujo de salida, en orden, dos bytes por carácter. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeChars("abc");
target.writeChars("○△×");
}
final var bytes = out.toByteArray();
// [00, 61, 00, 62, 00, 63, 25, cb, 25, b3, 00, d7]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeDouble (double v)
Escribe un valor doble, que consta de ocho bytes, en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeDouble(1.23);
target.writeDouble(-4.56);
}
final var bytes = out.toByteArray();
// [3f, f3, ae, 14, 7a, e1, 47, ae, c0, 12, 3d, 70, a3, d7, 0a, 3d]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeFloat (float v)
Escribe un valor flotante, que consta de cuatro bytes, en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeFloat(1.23f);
target.writeFloat(-4.56f);
}
final var bytes = out.toByteArray();
// [3f, 9d, 70, a4, c0, 91, eb, 85]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeInt (int v)
Escribe un valor int, que consta de cuatro bytes, en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeInt(0x12345678);
target.writeInt(0xff);
}
final var bytes = out.toByteArray();
// [12, 34, 56, 78, 00, 00, 00, ff]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeLong (long v)
Escribe un valor largo, compuesto de ocho bytes, en el flujo de salida. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeLong(0x1234567890abcdefL);
target.writeLong(0xff);
}
final var bytes = out.toByteArray();
// [12, 34, 56, 78, 90, ab, cd, ef, 00, 00, 00, 00, 00, 00, 00, ff]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeShort (int v)
Escribe dos bytes en el flujo de salida para representar el valor del argumento. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeShort(0x1234);
target.writeShort(0xff);
}
final var bytes = out.toByteArray();
// [12, 34, 00, ff]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
void writeUTF (String s)
Escribe dos bytes de información de longitud en el flujo de salida, seguido de la representación UTF-8 modificada de cada carácter en la cadena s. (Traducción automática)
final var out = new ByteArrayOutputStream();
try (final var os = new DataOutputStream(out)) {
final DataOutput target = os;
target.writeUTF("abc");
target.writeUTF("○△×");
}
final var bytes = out.toByteArray();
// [00, 03, 61, 62, 63, 00, 08, e2, 97, 8b, e2, 96, b3, c3, 97]
System.out.println("[" + HexFormat.ofDelimiter(", ").formatHex(bytes) + "]");
Related posts
- Ejemplos de API