DataInputStream和DataOutputStream的基本使用

字节流:InputStream类 OutputStream类

字符流:Reader类 Writer类

DataInputStream和DataOutputStream是一对可以直接读取基本类型数据的流,简化了对基本数据类型的读写操作。

DataInputStream主要方法

DataInputStream主要方法:

read(byte[] b) 

read(byte[] b, int off, int len) 

readBoolean() 

readByte() 

readChar() 

readDouble() 

readFloat() 

readInt() 

readLong() 

readShort() 

readUnsignedByte() 

 int readUnsignedShort() 

 String readUTF() 

static String readUTF(DataInput in) 

 int skipBytes(int n) 

 

DataOutputStream的主要方法

 DataOutputStream的主要方法:

flush() 


size() 


write(byte[] b, int off, int len) 


write(int b) 


writeBoolean(boolean v) 


writeByte(int v) 


writeBytes(String s) 


writeChar(int v) 


writeChars(String s) 


writeDouble(double v) 


writeFloat(float v) 


writeInt(int v) 


writeLong(long v) 


writeShort(int v) 


writeUTF(String str)

使用方法

        FileOutputStream fos=new FileOutputStream("./logs/data.txt");
		DataOutputStream dos=new DataOutputStream(fos);
		dos.writeInt(88);
		dos.writeUTF("是兄弟就来砍我!");
		dos.close();
 
		FileInputStream fis=new FileInputStream("./logs/data.txt");
		DataInputStream dis=new DataInputStream(fis);
		System.out.println("int:"+dis.readInt());
		System.out.println("UTF:"+dis.readUTF());
        fis.close();

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DataInputStreamDataOutputStreamJava中用于读取和写入基本数据类型的流。它们是InputStreamOutputStream的子类,并且基于父类DataInput和DataOutput。这两个类用于对机器可读的文件进行读写操作,而不是给人类阅读的。DataInputStream只能读取由DataOutputStream写出的文件。\[1\] 使用BufferedInputStream/BufferedOutputStream读写的并不是纯二进制数据,因此在某些情况下,比如网络传输时,可能会出现文件无法恢复的问题,除非是纯文本文件。为了解决文件流的通用性,我们可以使用DataInputStream/DataOutputStream以纯二进制的方式进行读写。DataInputStreamDataOutputStream可以被认为是更高级的类,需要与其他InputStream进行组合使用,通常建议使用带缓冲的流,如BufferedInputStream。\[2\] DataInputStreamDataOutputStream提供了一系列方法来读取和写入八种基本数据类型,以及字符串。这些方法可以保持数据类型的一致性,非常适合在网络上传输基本类型数据和字符串。\[3\] 需要注意的是,数据流属于处理流,必须与节点流一起使用,并且在读取和存储数据时的顺序必须一致,否则读取的数据可能会失真。 #### 引用[.reference_title] - *1* [DataInputStreamDataOutputStream流](https://blog.csdn.net/weixin_43808717/article/details/115068980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [datainputstreamdataoutputstream](https://blog.csdn.net/m0_46301469/article/details/106105129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [数据流: DataInputStreamDataOutputStream](https://blog.csdn.net/weixin_30436891/article/details/99150359)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值