接口 DataOutput

java.io
接口 DataOutput

所有已知子接口:
ImageOutputStream, ObjectOutput
所有已知实现类:
DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile

public interface DataOutput
 

DataOutput 接口用于将数据从任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流。同时还提供了一个将 String 转换成 UTF-8 修改版格式并写入所得到的系列字节的工具。

对于此接口中写入字节的所有方法,如果由于某种原因无法写入某个字节,则抛出 IOException

 

从以下版本开始:
JDK1.0
 

方法摘要
 voidwrite(byte[] b)
          将数组 b 中的所有字节写入输出流。
 voidwrite(byte[] b, int off, int len)
          将数组 b 中的 len 个字节按顺序写入输出流。
 voidwrite(int b)
          将参数 b八个低位写入输出流。
 voidwriteBoolean(boolean v)
          将一个 boolean 值写入输出流。
 voidwriteByte(int v)
          将参数 v 的八个低位写入输出流。
 voidwriteBytes(String s)
          将一个字符串的每个字符的八个低位写入输出流。
 voidwriteChar(int v)
          将一个 char 值写入输出流,该值由两个字节组成。
 voidwriteChars(String s)
          将字符串 s 中的所有字符按顺序写入输出流,每个字符用两个字节表示。
 voidwriteDouble(double v)
          将一个 double 值写入输出流,该值由八个字节组成。
 voidwriteFloat(float v)
          将一个 float 值写入输出流,该值由四个字节组成。
 voidwriteInt(int v)
          将一个 int 值写入输出流,该值由四个字节组成。
 voidwriteLong(long v)
          将一个 long 值写入输出流,该值由八个字节组成。
 voidwriteShort(int v)
          将两个字节写入输出流,用它们表示参数值。
 voidwriteUTF(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 错误。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java流与文件——流

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——流 的相关知识; 0.2) 输入流和输出流(InputStream 和 OutputStream传输单位是基于单字节): 0.2.1&#xff09…

c语言结构体定义字符串数组,C语言,结构体中字符串的声明(采用字符指针还是字符数组)...

结构体中,字符串选项是用字符数组表示好,还是用字符指针表示好?typedef struct person{char *name;int age;char sex[6];};该结构体中name用的是指针而不是数组,所以需要给字符串在堆上申请内存然后再赋值;…

java –cp ./:_成为Java流专家–第2部分:中级操作

java –cp ./:就像魔术棒一样,中间操作将一个Stream转换为另一个Stream。 这些操作可以无穷无尽的方式组合在一起,以可读有效的方式执行从简单到高度复杂的任务。 本文是五分之二,其中还有一个GitHub存储库,其中包含每个单元的说…

c语言编程代码对父母感恩,c语言中编程:每个做父母的都关心自己孩子成人后孩子的生高:...

c语言中编程:每个做父母的都关心自己孩子成人后孩子的生高:据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等.小孩成人后的身高与其父母的身高和自身的性别密切相关.设faHeight为其父身高,moHeight为其母…

Servlet之javaweb应用(二)

一、 使用 JavaEE 版的 Eclipse 开发动态的 WEB 工程(JavaWEB 项目) 1). 把开发选项切换到 JavaEE 2). 可以在 Window -> Show View 中找到 Package Explorer, 并把其拖拽到开发区的左边 3). 在 Servers 面板中新建 Tomcat 服务器. 一定要关联到 Tomcat 安装的根目录 4). 新…

java流与文件——文本输入输出

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——文本输入输出 的相关知识; 0.2) 在保存数据时,可以选择是二进制还是文本格式; 在存储文本字符串时, 需要考虑字…

RandomAccessFile类解析

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——RandomAccessFile类解析 的相关知识; 0.1) 本文 转自: http://blog.csdn.net/akon_vm/article/details/7429245 , for com…

Servlet之Tomcat配置与启动(一)

一、 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-7.0.11.zip 到一个非中文目录下 2). 配置一个环境变量 java_home(指向 JDK 安装的根目录) 或 jre_home 3). 通过双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat, 启动服务器 4). 可以在浏览器中输入 localhost:8…

随机数生成器c语言,句子随机生成器-怎么用C语言生成随机数

为随机数生成器初始化一个种子值在易语言中使用什么命令名置随机数种子 ()‘调用格式: 〈无返回值〉 置随机数种子 (〔整数型 欲置入的种子数值〕) - 系统核心支持库->算术运算英文名称:randomize为随机数生成器初始化一个种子值,不同的种…

nsstring 空值比较_用比较器的nulls排序具有空值的列表

nsstring 空值比较你好朋友, 在本教程中,我们将看到如何使用Java 8 Comparator.nullsFirst在列表中的项目很少为空时如何对项目列表进行排序,从而将null视为列表中的最小元素。 –什么是比较器 – nullsFirst方法在Comparator中做什么 –…

hibernate的Configuration和配置文件

一、hibernate的入口Configuration 在Hibernate中,Configuration是hibernate的入口。在实例化一个Configuration的时候,Hibernate会自动在环境变量(classpath)里面查找Hibernate配置文件hibernate.properties。如果该文件存在&…

单片机c语言6种开方,单片机快速开平方的算法

C语言中开平方的算法中要开平方的话,可以在头文件中加#include .然后调sqrt(n);函数即可.但在单片机中要开平方.可以用到下面算法:算法1:本算法只采用移位、加减法、判断和循环实现,因为它不需要浮点运算,也不需要乘除运算,因此可以很方便地运…

spring 配置只读事务_只读副本和Spring Data第3部分:配置两个实体管理器

spring 配置只读事务我们之前的设置可以正常工作。 我们现在要做的是进一步发展,并配置两个单独的实体管理器,而不会影响我们之前实现的功能。 第一步是将默认实体管理器配置设置为主要配置。 这是第一步 package com.gkatzioura.springdatareadreplic…

java流与文件——读写二进制数据(DataOutput + DataInput)

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——读写二进制数据(DataOutput DataInput)的相关知识; 0.2) for complete my diy code, please visit https://github.com/p…

dsp课程设计c语言源码,DSP课程设计-基于C语言实现256点的FFT精选.pdf

DSP课程设计-基于C语言实现256点的FFT精选XX 大学J1111111 UNIVERSITYDSP 课 程 设 计基于CCS 的FFT 算法的C 语言实现和验证学院名称:专业班级:学 号:学生姓名:指导教师姓名:201 年 0 月 0 日一、 课程设计目的1.此次…

java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术

java 字符数组与字符串Java通常会排在前五种最流行的编程语言中,因此可以理解。 它是一种通用语言,非常容易学习,因为它是一种高级语言,并且可以满足许多用例。 由于这些原因,Java是一门很棒的语言,可以用来…

Hibernate之映射

一、映射文件 Hibernate在实现ORM功能的时候主要用到的文件有: 1、 映射类(*.Java) 描述数据库表的结构,表的字段映射为类的属性,表的记录映射为类的对象。 2、映射文件(*.hbm.xml) …

java流与文件——ZIP文档

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——ZIP文档 的相关知识; 0.2) for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/cha…

单片机与gsm通信c语言,gsm模块如何与单片机通信?

51单片机与GSM模块实现通信1、检测串口线的好坏1)将串口线插在电脑上,用短路子短接串口的2脚和3脚2)打开串口调试助手3)点击自动发送,在自动发送的窗口中随便发个数据,看看能不能接收到若能接收到自己发的数据表示串口线是正常的,…

aws terraform_在AWS第1部分中使用Terraform自动缩放组:基本步骤

aws terraform因此,您想使用Terraform在AWS上创建一个自动缩放组。 以下是达到此目的的最少步骤。 在编写实际代码之前,应指定aws terraform提供程序以及provider.tf文件上的区域。 provider "aws" { version "~> 2.0" region …