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 中的所有字节写入输出流。如果 bnull,则抛出 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 个字节按顺序写入输出流。如果 bnull,则抛出 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 值写入输出流。如果参数 vtrue,则写入值 (byte)1;如果 vfalse,则写入值 (byte)0。此方法写入的字节可由 DataInput 接口的 readBoolean 方法读取,然后该方法将返回一个等于 vboolean 值。
参数:
v - 要写入的 boolean 值。
抛出:
IOException - 如果发生 I/O 错误。

writeByte

void writeByte(int v)throws IOException
将参数 v 的八个低位写入输出流。忽略 v 的 24 个高位。(这意味着 writeByte 的作用与使用整数做参数的 write 完全相同。)此方法写入的字节可由 DataInput 接口的 readByte 方法读取,然后该方法将返回一个等于 (byte)vbyte 值。
参数:
v - 要写入的字节值。
抛出:
IOException - 如果发生 I/O 错误。

writeShort

void writeShort(int v)throws IOException
将两个字节写入输出流,用它们表示参数值。要写入的字节值(按顺序显示)是:

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

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

参数:
v - 要写入的 short 值。
抛出:
IOException - 如果发生 I/O 错误。

writeChar

void writeChar(int v)throws IOException
将一个 char 值写入输出流,该值由两个字节组成。要写入的字节值(按顺序显示)是:

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

此方法写入的字节可由 DataInput 接口的 readChar 方法读取,然后该方法将返回一个等于 (char)vchar 值。

参数:
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 方法读取,然后该方法将返回一个等于 vint 值。

参数:
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 方法读取,然后该方法将返回一个等于 vlong 值。

参数:
v - 要写入的 long 值。
抛出:
IOException - 如果发生 I/O 错误。

writeFloat

void writeFloat(float v)throws IOException
将一个 float 值写入输出流,该值由四个字节组成。实现这一点的方式是:首先使用与 Float.floatToIntBits 方法完全相同的方式将此 float 值转换为一个 int 值,然后使用与 writeInt 方法完全相同的方式写入该 int 值。此方法写入的字节可由 DataInput 接口的 readFloat 方法读取,然后该方法将返回一个等于 vfloat 值。
参数:
v - 要写入的 float 值。
抛出:
IOException - 如果发生 I/O 错误。

writeDouble

void writeDouble(double v)throws IOException
将一个 double 值写入输出流,该值由八个字节组成。实现这一点的方式是:首先使用与 Double.doubleToLongBits 方法相同的方式将此 double 值转换为一个 long 值,然后使用与 writeLong 方法完全相同的方式写入该 long 值。此方法写入的字节可由 DataInput 接口的 readDouble 方法读取,然后该方法将返回一个等于 vdouble 值。
参数:
v - 要写入的 double 值。
抛出:
IOException - 如果发生 I/O 错误。

writeBytes

void writeBytes(String s)throws IOException
将一个字符串写入输出流。字符串 s 中的每一个字符被依次写入输出流,每个字符用一个字节表示。如果 snull,则抛出 NullPointerException

如果 s.length 为零,则不写入字节。否则,首先写入字符 s[0],然后写入字符 s[1],依此类推;最后一个写入字符是 s[s.length-1]。使用与 writeByte 方法完全相同的方法为每个字符写入一个低位字节。忽略字符串中每个字符的八个高位。

参数:
s - 要写入的字节字符串。
抛出:
IOException - 如果发生 I/O 错误。

writeChars

void writeChars(String s)throws IOException
将字符串 s 中的所有字符按顺序写入输出流,每个字符用两个字节表示。如果 snull,则抛出 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 修改版表示形式。如果 snull,则抛出 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 方法读取,然后该方法将返回一个等于 sString 值。

参数:
s - 要写入的字符串值。
抛出:
IOException - 如果发生 I/O 错误。

接口 DataOutput相关推荐

  1. 接口 DataInput

    java.io 接口 DataInput 所有已知子接口: ImageInputStream, ImageOutputStream, ObjectInput 所有已知实现类: DataInputStr ...

  2. 201521123007《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  3. java 运行异常处理_Java编程异常处理和I/O流

    重点: 1.在编写程序时,要正确地使用捕获例外和声明抛出异常的两种例外处理的方法. 2.遇到实际问题时,要根据需要正确使用各种输入/输出流,特别是对中文使用适当的字符输入流. 3.正确使用对象串行化的 ...

  4. java writeint_java的writeInt() 函数怎么用啊

    匿名用户 回答 这个方法是 java.io.DataOutput 接口中的一个方法. 下面是 JDK1.5 中的参考: java.io 接口 DataOutput 所有已知子接口: ImageOutp ...

  5. InputStream 和OutputStream

    1.InputStream ◇ 从流中读取数据: int read( ); //读取一个字节,返回值为所读的字节 int read( byte b[ ] ); //读取多个字节,放置到字节数组b中,通 ...

  6. 转 Java知识——精华总结

    一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程.  为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路. ...

  7. 编程资料 -C# 多线程

    编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...

  8. 编程资料 -C# 多线程 1

    编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...

  9. Serializable接口初探

    类通过实现 java.io.Serializable 接口以启用其序列化功能.未实现此接口的类将无法使其任何状态序列化或反序列化.可序列化类的所有子类型本身都是可序列化的.序列化接口没有方法或字段,仅 ...

最新文章

  1. linux下mysql无法访问_Linux系统下无法访问mysql怎么办
  2. datatable 汇总_【2019 版】中国石油大学(北京)计算机考研信息、资料汇总
  3. linux安装64 mysql5.7_Linux安装64位Mysql5.7.22
  4. Android更新Ui的几种方法
  5. 亲手完成四大企业实战项目,挑战Python全栈高薪岗位!
  6. Linux网络编程 | Socket编程(二)TCPSocket的封装、TCP服务器多进程、多线程版本的实现
  7. Problem C: 顺序表基本运算(线性表)
  8. Shell 脚本 ssh免密码 登录 远程服务器 sshpass用法示例
  9. 京东聚合收银(会员码支付)接口封装C++
  10. sakai mysql_开源网络教学平台SAKAI开发环境的搭建 | 学步园
  11. C语言中%d,%o,%f,%e,%x的意义
  12. Python非线性拟合自定义函数参数(对标MATLAB-nlinfit函数)
  13. 2020 Stibo Systems全球事业部新财年启动大会胜利召开
  14. linux系统怎么连接显示器,Linux下笔记本外接显示器 · Eulerlee
  15. 合成分红游戏源码_旅行世界遛狗养狗恐龙源码,分红龙源码、红包龙、合成龙...
  16. 三方平台与对象存储对接后的应用场景及接口说明
  17. 商场促销的语音如何录制?两个小方法来帮忙
  18. C++.02: Visual Studio 2022 文件筛选器与虚拟目录
  19. Windows 如何打开DOS命令窗口 以及常用的DOS命令
  20. 建筑物轮廓(含楼层或者高度)

热门文章

  1. [Java基础]List集合
  2. dptcpp 题目 2352: [信息学奥赛一本通-T1440]数的划分-dp
  3. Redis--事务理解
  4. 调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...
  5. Java基础知识——Java集合详解
  6. HDU 2588 GCD(欧拉函数)
  7. #3864. Hero meet devil dp套dp + 状压 + 状态机
  8. 【IOI2018】会议【笛卡尔树】【dp】【线段树】
  9. AGC023F - 01 on Tree
  10. Codeforces 1065 E. Side Transmutations