codecamp

鸿蒙OS DataOutput

DataOutput

public interface DataOutput

DataOutput 接口提供将数据从任何 Java 原始类型转换为一系列字节并将这些字节写入二进制流。 还有一种工具可以将字符串转换为修改后的 UTF-8 格式并写入生成的一系列字节。

对于此接口中所有写入字节的方法,通常情况下,如果由于某种原因无法写入字节,则会抛出 IOException。

Since:

JDK1.0

方法总结

修饰符和类型 方法 描述
void write(byte[] b) 将数组 b 中的所有字节写入输出流。
void write(byte[] b, int off, int len) 按顺序将数组 b 中的 len 个字节写入输出流。
void write(int b) 将参数 b 的 8 个低位写入输出流。
void writeBoolean(boolean v) 将布尔值写入此输出流。
void writeByte(int v) 将参数 v 的 8 个低位写入输出流。
void writeBytes(String s) 将字符串写入输出流。
void writeChar(int v) 将一个由两个字节组成的 char 值写入输出流。
void writeChars(String s) 将字符串 s 中的每个字符按顺序写入输出流,每个字符两个字节。
void writeDouble(double v) 将包含八个字节的双精度值写入输出流。
void writeFloat(float v) 将一个由四个字节组成的浮点值写入输出流。
void writeInt(int v) 将一个由四个字节组成的 int 值写入输出流。
void writeLong(long v) 将一个由 8 个字节组成的 long 值写入输出流。
void writeShort(int v) 将两个字节写入输出流以表示参数的值。
void writeUTF(String s) 将两个字节的长度信息写入输出流,然后是字符串 s 中每个字符的修改后的 UTF-8 表示。

方法详情

write

void write(int b) throws IOException

将参数 b 的 8 个低位写入输出流。 b 的高 24 位被忽略。

参数:

参数名称 参数描述
b 要写入的字节。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

write

void write(byte[] b) throws IOException

将数组 b 中的所有字节写入输出流。 如果 b 为 null,则抛出 NullPointerException。 如果 b.length 为零,则不写入任何字节。 否则,先写入字节 b[0],然后写入 b[1],以此类推; 最后写入的字节是 b[b.length-1]。

参数:

参数名称 参数描述
b 数据。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

write

void write(byte[] b, int off, int len) throws IOException

按顺序将数组 b 中的 len 个字节写入输出流。 如果 b 为 null,则抛出 NullPointerException。 如果 off 为负数,或 len 为负数,或 off+len 大于数组 b 的长度,则抛出 IndexOutOfBoundsException。 如果 len 为零,则不写入任何字节。 否则,先写入字节b[off],再写入b[off+1],以此类推; 最后写入的字节是 b[off+len-1]。

参数:

参数名称 参数描述
b 数据。
off 数据中的起始偏移量。
len 要写入的字节数。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeBoolean

void writeBoolean(boolean v) throws IOException

将布尔值写入此输出流。 如果参数 v 为 true,则写入值(字节)1; 如果 v 为 false,则写入值(字节)0。 该方法写入的字节可以被接口DataInput的readBoolean方法读取,然后返回一个等于v的布尔值。

参数:

参数名称 参数描述
v 要写入的布尔值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeByte

void writeByte(int v) throws IOException

将参数 v 的 8 个低位写入输出流。 v 的 24 个高位被忽略。 (这意味着 writeByte 与写入整数参数的操作完全相同。)此方法写入的字节可以由接口 DataInput 的 readByte 方法读取,然后返回等于 (byte)v 的字节。

参数:

参数名称 参数描述
v 要写入的字节值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeShort

void writeShort(int v) throws IOException

将两个字节写入输出流以表示参数的值。 要写入的字节值按所示顺序为:

 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)

此方法写入的字节可能会被接口 DataInput 的 readShort 方法读取,然后该方法将返回一个等于 (short)v 的short。

参数:

参数名称 参数描述
v 要写入的短值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeChar

void writeChar(int v) throws IOException

将一个由两个字节组成的 char 值写入输出流。 要写入的字节值按所示顺序为:

 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)

该方法写入的字节可以被接口 DataInput 的 readChar 方法读取,然后返回一个等于 (char)v 的字符。

参数:

参数名称 参数描述
v 要写入的 char 值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeInt

void writeInt(int v) throws IOException

将一个由四个字节组成的 int 值写入输出流。 要写入的字节值按所示顺序为:

 (byte)(0xff & (v >> 24))
 (byte)(0xff & (v >> 16))
 (byte)(0xff & (v >>  8))
 (byte)(0xff & v)

此方法写入的字节可以由接口 DataInput 的 readInt 方法读取,然后返回一个等于 v 的 int。

参数:

参数名称 参数描述
v 要写入的 int 值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeLong

void writeLong(long v) throws IOException

将一个由 8 个字节组成的 long 值写入输出流。 要写入的字节值按所示顺序为:

 (byte)(0xff & (v >> 56))
 (byte)(0xff & (v >> 48))
 (byte)(0xff & (v >> 40))
 (byte)(0xff & (v >> 32))
 (byte)(0xff & (v >> 24))
 (byte)(0xff & (v >> 16))
 (byte)(0xff & (v >>  8))
 (byte)(0xff & v)

该方法写入的字节可以被接口 DataInput 的 readLong 方法读取,然后返回一个等于 v 的 long。

参数:

参数名称 参数描述
v 要写入的 long 值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeFloat

void writeFloat(float v) throws IOException

将一个由四个字节组成的浮点值写入输出流。 就像它首先完全按照 Float.floatToIntBits 方法的方式将此浮点值转换为一个 int,然后按照 writeInt 方法的完全一样的方式写入 int 值。 该方法写入的字节可能会被接口 DataInput 的 readFloat 方法读取,然后返回一个等于 v 的浮点数。

参数:

参数名称 参数描述
v 要写入的浮点值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeDouble

void writeDouble(double v) throws IOException

将包含八个字节的双精度值写入输出流。 就像它首先完全按照 Double.doubleToLongBits 方法的方式将此 double 值转换为 long 值,然后按照 writeLong 方法的方式写入 long 值一样。 这个方法写入的字节可以被接口DataInput的readDouble方法读取,然后返回一个等于v的double。

参数:

参数名称 参数描述
v 要写入的双精度值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeBytes

void writeBytes(String s) throws IOException

将字符串写入输出流。 对于字符串 s 中的每个字符,按顺序将一个字节写入输出流。 如果 s 为 null,则抛出 NullPointerException。

如果 s.length 为零,则不写入任何字节。 否则先写字符s[0],再写s[1],以此类推; 最后写入的字符是 s[s.length-1]。 对于每个字符,以 writeByte 方法的方式写入一个字节,即低位字节。 忽略字符串中每个字符的高八位。

参数:

参数名称 参数描述
s 要写入的字节串。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeChars

void writeChars(String s) throws IOException

将字符串 s 中的每个字符按顺序写入输出流,每个字符两个字节。 如果 s 为 null,则抛出 NullPointerException。 如果 s.length 为零,则不写入任何字符。 否则先写字符s[0],再写s[1],以此类推; 最后写入的字符是 s[s.length-1]。 对于每个字符,实际上写入了两个字节,首先是高位字节,这与 writeChar 方法的方式完全相同。

参数:

参数名称 参数描述
s 要写入的字符串值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。

writeUTF

void writeUTF(String s) throws IOException

将两个字节的长度信息写入输出流,然后是字符串 s 中每个字符的修改后的 UTF-8 表示。 如果 s 为 null,则抛出 NullPointerException。 根据字符的值,字符串 s 中的每个字符都转换为一组一个、两个或三个字节。

如果字符 c 在 \u0001 到 \u007f 的范围内,它由一个字节表示:

(byte)c 

如果字符 c 是 \u0000 或在 \u0080 到 \u07ff 范围内,则它由两个字节表示,按所示顺序写入:

 (byte)(0xc0 | (0x1f & (c >> 6)))
 (byte)(0x80 | (0x3f & c))

如果字符 c 在 \u0800 到 uffff 范围内,则它由三个字节表示,按所示顺序写入:

 (byte)(0xe0 | (0x0f & (c >> 12)))
 (byte)(0x80 | (0x3f & (c >>  6)))
 (byte)(0x80 | (0x3f & c))

首先,计算表示 s 的所有字符所需的总字节数。 如果此数字大于 65535,则抛出 UTFDataFormatException。 否则,这个长度完全按照 writeShort 方法的方式写入输出流; 在此之后,写入字符串 s 中每个字符的一、二或三字节表示。

该方法写入的字节可以被接口 DataInput 的 readUTF 方法读取,然后返回一个等于 s 的字符串。

参数:

参数名称 参数描述
s 要写入的字符串值。

Throws:

Throw名称 Throw描述
IOException 如果发生 I/O 错误。
鸿蒙OS DataInput
鸿蒙OS Externalizable
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }