接口 DataOutput
java.io
接口 DataOutput
- 所有已知子接口:
- ImageOutputStream, ObjectOutput
- 所有已知实现类:
- DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile
public interface DataOutput
DataOutput
接口用于将数据从任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流。同时还提供了一个将 String
转换成 UTF-8 修改版格式并写入所得到的系列字节的工具。
对于此接口中写入字节的所有方法,如果由于某种原因无法写入某个字节,则抛出 IOException
。
- 从以下版本开始:
- JDK1.0
方法摘要 | |
---|---|
void
|
write(byte[] b) 将数组 b 中的所有字节写入输出流。
|
void
|
write(byte[] b, int off, int len) 将数组 b 中的 len 个字节按顺序写入输出流。
|
void
|
write(int b) 将参数 b 的八个低位写入输出流。
|
void
|
writeBoolean(boolean v) 将一个 boolean 值写入输出流。
|
void
|
writeByte(int v) 将参数 v 的八个低位写入输出流。
|
void
|
writeBytes(String s) 将一个字符串的每个字符的八个低位写入输出流。 |
void
|
writeChar(int v) 将一个 char 值写入输出流,该值由两个字节组成。
|
void
|
writeChars(String s) 将字符串 s 中的所有字符按顺序写入输出流,每个字符用两个字节表示。
|
void
|
writeDouble(double v) 将一个 double 值写入输出流,该值由八个字节组成。
|
void
|
writeFloat(float v) 将一个 float 值写入输出流,该值由四个字节组成。
|
void
|
writeInt(int v) 将一个 int 值写入输出流,该值由四个字节组成。
|
void
|
writeLong(long v) 将一个 long 值写入输出流,该值由八个字节组成。
|
void
|
writeShort(int v) 将两个字节写入输出流,用它们表示参数值。 |
void
|
writeUTF(String s) 将表示长度信息的两个字节写入输出流,后跟字符串 s 中每个字符的 UTF-8 修改版表示形式。
|
方法详细信息 |
---|
write
void write(int b)throws IOException
-
将参数
b
的八个低位写入输出流。忽略b
的 24 个高位。 -
- 参数:
-
b
- 要写入的字节。 - 抛出:
-
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
- 数据。 - 抛出:
-
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
- 要写入的字节数。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeBoolean
void writeBoolean(boolean v)throws IOException
-
将一个
boolean
值写入输出流。如果参数v
为true
,则写入值(byte)1
;如果v
为false
,则写入值(byte)0
。此方法写入的字节可由DataInput
接口的readBoolean
方法读取,然后该方法将返回一个等于v
的boolean
值。 -
- 参数:
-
v
- 要写入的 boolean 值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeByte
void writeByte(int v)throws IOException
-
将参数
v
的八个低位写入输出流。忽略v
的 24 个高位。(这意味着writeByte
的作用与使用整数做参数的write
完全相同。)此方法写入的字节可由DataInput
接口的readByte
方法读取,然后该方法将返回一个等于(byte)v
的byte
值。 -
- 参数:
-
v
- 要写入的字节值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeShort
void writeShort(int v)throws IOException
-
将两个字节写入输出流,用它们表示参数值。要写入的字节值(按顺序显示)是:
(byte)(0xff & (v >> 8))(byte)(0xff & v)
此方法写入的字节可由
DataInput
接口的readShort
方法读取,然后该方法将返回一个等于(short)v
的short
值。 -
- 参数:
-
v
- 要写入的short
值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeChar
void writeChar(int v)throws IOException
-
将一个
char
值写入输出流,该值由两个字节组成。要写入的字节值(按顺序显示)是:(byte)(0xff & (v >> 8))(byte)(0xff & v)
此方法写入的字节可由
DataInput
接口的readChar
方法读取,然后该方法将返回一个等于(char)v
的char
值。 -
- 参数:
-
v
- 要写入的char
值。 - 抛出:
-
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
值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeLong
void writeLong(long v)throws IOException
-
将一个
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
值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeFloat
void writeFloat(float v)throws IOException
-
将一个
float
值写入输出流,该值由四个字节组成。实现这一点的方式是:首先使用与Float.floatToIntBits
方法完全相同的方式将此float
值转换为一个int
值,然后使用与writeInt
方法完全相同的方式写入该int
值。此方法写入的字节可由DataInput
接口的readFloat
方法读取,然后该方法将返回一个等于v
的float
值。 -
- 参数:
-
v
- 要写入的float
值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
writeDouble
void writeDouble(double v)throws IOException
-
将一个
double
值写入输出流,该值由八个字节组成。实现这一点的方式是:首先使用与Double.doubleToLongBits
方法相同的方式将此double
值转换为一个long
值,然后使用与writeLong
方法完全相同的方式写入该long
值。此方法写入的字节可由DataInput
接口的readDouble
方法读取,然后该方法将返回一个等于v
的double
值。 -
- 参数:
-
v
- 要写入的double
值。 - 抛出:
-
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
- 要写入的字节字符串。 - 抛出:
-
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
- 要写入的字符串值。 - 抛出:
-
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
中所有字符的 1 字节、2 字节或 3 字节表示形式。此方法写入的字节可由
DataInput
接口的readUTF
方法读取,然后该方法将返回一个等于s
的String
值。 -
- 参数:
-
s
- 要写入的字符串值。 - 抛出:
-
IOException
- 如果发生 I/O 错误。
接口 DataOutput相关推荐
- 接口 DataInput
java.io 接口 DataInput 所有已知子接口: ImageInputStream, ImageOutputStream, ObjectInput 所有已知实现类: DataInputStr ...
- 201521123007《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- java 运行异常处理_Java编程异常处理和I/O流
重点: 1.在编写程序时,要正确地使用捕获例外和声明抛出异常的两种例外处理的方法. 2.遇到实际问题时,要根据需要正确使用各种输入/输出流,特别是对中文使用适当的字符输入流. 3.正确使用对象串行化的 ...
- java writeint_java的writeInt() 函数怎么用啊
匿名用户 回答 这个方法是 java.io.DataOutput 接口中的一个方法. 下面是 JDK1.5 中的参考: java.io 接口 DataOutput 所有已知子接口: ImageOutp ...
- InputStream 和OutputStream
1.InputStream ◇ 从流中读取数据: int read( ); //读取一个字节,返回值为所读的字节 int read( byte b[ ] ); //读取多个字节,放置到字节数组b中,通 ...
- 转 Java知识——精华总结
一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路. ...
- 编程资料 -C# 多线程
编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...
- 编程资料 -C# 多线程 1
编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...
- Serializable接口初探
类通过实现 java.io.Serializable 接口以启用其序列化功能.未实现此接口的类将无法使其任何状态序列化或反序列化.可序列化类的所有子类型本身都是可序列化的.序列化接口没有方法或字段,仅 ...
最新文章
- linux下mysql无法访问_Linux系统下无法访问mysql怎么办
- datatable 汇总_【2019 版】中国石油大学(北京)计算机考研信息、资料汇总
- linux安装64 mysql5.7_Linux安装64位Mysql5.7.22
- Android更新Ui的几种方法
- 亲手完成四大企业实战项目,挑战Python全栈高薪岗位!
- Linux网络编程 | Socket编程(二)TCPSocket的封装、TCP服务器多进程、多线程版本的实现
- Problem C: 顺序表基本运算(线性表)
- Shell 脚本 ssh免密码 登录 远程服务器 sshpass用法示例
- 京东聚合收银(会员码支付)接口封装C++
- sakai mysql_开源网络教学平台SAKAI开发环境的搭建 | 学步园
- C语言中%d,%o,%f,%e,%x的意义
- Python非线性拟合自定义函数参数(对标MATLAB-nlinfit函数)
- 2020 Stibo Systems全球事业部新财年启动大会胜利召开
- linux系统怎么连接显示器,Linux下笔记本外接显示器 · Eulerlee
- 合成分红游戏源码_旅行世界遛狗养狗恐龙源码,分红龙源码、红包龙、合成龙...
- 三方平台与对象存储对接后的应用场景及接口说明
- 商场促销的语音如何录制?两个小方法来帮忙
- C++.02: Visual Studio 2022 文件筛选器与虚拟目录
- Windows 如何打开DOS命令窗口 以及常用的DOS命令
- 建筑物轮廓(含楼层或者高度)
热门文章
- [Java基础]List集合
- dptcpp 题目 2352: [信息学奥赛一本通-T1440]数的划分-dp
- Redis--事务理解
- 调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...
- Java基础知识——Java集合详解
- HDU 2588 GCD(欧拉函数)
- #3864. Hero meet devil dp套dp + 状压 + 状态机
- 【IOI2018】会议【笛卡尔树】【dp】【线段树】
- AGC023F - 01 on Tree
- Codeforces 1065 E. Side Transmutations