JAVA中常用IO流类: DataInputStream和DataOutputStream

92 篇文章 1 订阅
11 篇文章 0 订阅

  DataInputStream和DataOutputStream二者分别实现了DataInput/DataOutput接口

DataInputStream能以一种与机器无关(当前操作系统等)的方式,直接从地从字节输入流读取JAVA基本类型和String类型的数据,常用于网络传输等(网络传输数据要求与平台无关)常用方法包括:

 


方法摘要

 int

read(byte[] b) 
          从包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中。

 int

read(byte[] b, int off, int len) 
          从包含的输入流中将最多 len 个字节读入一个 byte 数组中。

 boolean

readBoolean() 
          参见 DataInput 的 readBoolean 方法的常规协定。

 byte

readByte() 
          参见 DataInput 的 readByte 方法的常规协定。

 char

readChar() 
          参见 DataInput 的 readChar 方法的常规协定。

 double

readDouble() 
          参见 DataInput 的 readDouble 方法的常规协定。

 float

readFloat() 
          参见 DataInput 的 readFloat 方法的常规协定。

 void

readFully(byte[] b) 
          参见 DataInput 的 readFully 方法的常规协定。

 void

readFully(byte[] b, int off, int len) 
          参见 DataInput 的 readFully 方法的常规协定。

 int

readInt() 
          参见 DataInput 的 readInt 方法的常规协定。

 

 

 long

readLong() 
          参见 DataInput 的 readLong 方法的常规协定。

 short

readShort() 
          参见 DataInput 的 readShort 方法的常规协定。

 int

readUnsignedByte() 
          参见 DataInput 的 readUnsignedByte 方法的常规协定。

 int

readUnsignedShort() 
          参见 DataInput 的 readUnsignedShort 方法的常规协定。

 String

readUTF() 
          参见 DataInput 的 readUTF 方法的常规协定。

static String

readUTF(DataInput in) 
          从流 in 中读取用 UTF-8 修改版格式编码的 Unicode 字符格式的字符串;然后以 String 形式返回此字符串。

 int

skipBytes(int n) 
          参见 DataInput 的 skipBytes 方法的常规协定。

 

DataOutputStream则能够直接将JAVA基本类型和String类型数据写入到其他的字节输入流。

常用方法:

方法摘要

 void

flush() 
          清空此数据输出流。

 int

size() 
          返回计数器 written 的当前值,即到目前为止写入此数据输出流的字节数。

 void

write(byte[] b, int off, int len) 
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入基础输出流。

 void

write(int b) 
          将指定字节(参数 b 的八个低位)写入基础输出流。

 void

writeBoolean(boolean v) 
          将一个 boolean 值以 1-byte 值形式写入基础输出流。

 void

writeByte(int v) 
          将一个 byte 值以 1-byte 值形式写出到基础输出流中。

 void

writeBytes(String s) 
          将字符串按字节顺序写出到基础输出流中。

 void

writeChar(int v) 
          将一个 char 值以 2-byte 值形式写入基础输出流中,先写入高字节。

 void

writeChars(String s) 
          将字符串按字符顺序写入基础输出流。

 void

writeDouble(double v) 
          使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为一个 long 值,然后将该 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。

 void

writeFloat(float v) 
          使用 Float 类中的 floatToIntBits 方法将 float 参数转换为一个 int 值,然后将该 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。

 void

writeInt(int v) 
          将一个 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。

 void

writeLong(long v) 
          将一个 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。

 void

writeShort(int v) 
          将一个 short 值以 2-byte 值形式写入基础输出流中,先写入高字节。

 void

writeUTF(String str) 
          以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。

 

实例:

import java.io.*;
class IODemo
{
	public static void main(String[] args) 
	{
		try
		{
		FileOutputStream fos=new FileOutputStream("xxx.data");
		DataOutputStream dos=new DataOutputStream(fos);
		dos.writeInt(100);
		dos.writeUTF("DataOutputStream Test");
		dos.close();

		FileInputStream fis=new FileInputStream("xxx.data");
		DataInputStream dis=new DataInputStream(fis);
		System.out.println("int:"+dis.readInt());
		System.out.println("UTF:"+dis.readUTF());
		dis.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	}
}

 

运行结果:产生一个xxx.data文件(此时已经不是文本文件,此时编码为JAVA虚拟机通用格式,即UTF-8),控制台输出结果为:

int:100

UTF:DataOutputStream Test

 

注:当要求输入输出流必须遵循平台无关时,可以使用这两个类
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值