文档章节

JavaSE DataInputStream和DataOutputStream流

博为峰教研组
 博为峰教研组
发布于 2017/04/09 17:53
字数 325
阅读 5
收藏 0
点赞 0
评论 0

 

DataInputStream和DataOutputStream是对InputStream和OutputStream字节流的格式化包装流,字节流读写是以字节为单位,对于象Java的数据类型比如int型就需要读写4次,double类型需要读写8个次,这样使用起就来非常不方便,同时也会影响性能。格式化包装流主要对Java的格式化类型进行读写操作,提供各种方便读写数据类型的方法。

DataInputStream:

 String readUTF()读取字符串

 int readInt()读取int型

 double readDouble()读取double型

 boolean readBoolean()读取boolean型

 等等。

DataOutputStream

 writeUTF(String)写字符串

 writeInt(int)写int型

 writeDouble(double)写double型

 writeBoolean(boolean)写boolean型

 等等。

 

示例1代码:

  public class TestDataOutputStream {

public static void main(String[] args) {

DataOutputStream dos=null;

FileOutputStream fos=null;

DataInputStream dis=null;

FileInputStream fis=null;

 

 

String str="Hello";

int a=123;

double d=12.3;

boolean bl=true;

try {

fos=new FileOutputStream("stream.dat");

dos=new DataOutputStream(fos);

dos.writeUTF(str);

dos.writeInt(a);

dos.writeDouble(d);

dos.writeBoolean(bl);

 

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally{

if(dos!=null){

try {

dos.flush();

dos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if(fos!=null)

try {

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

 

 

 

示例2代码:

 

public class TestDataInputStream{

public static void main(String[] args) {

DataInputStream dis=null;

FileInputStream fis=null;

try {

   fis=new FileInputStream("stream.dat");

   dis=new DataInputStream(fis);

   String str=dis.readUTF();

   int a=dis.readInt();

   double d=dis.readDouble();

   boolean bl=dis.readBoolean();

  

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally{

if(dis!=null){

try {

dis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if(fis!=null)

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

 

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 49
博文 1224
码字总数 479077
作品 0
黄浦
程序员
网络协议之二

基于socket的用法   服务器端:   先启动一个服务器端的socket ServerSocket svr = new ServerSocket(8989);   开始侦听请求         Socket s = svr.accept();   取得输入...

霞女 ⋅ 2014/02/19 ⋅ 0

android的网络编程

android的网络编程分为2种:基于socket的,和基于http协议的。 基于socket的用法 服务器端: 先启动一个服务器端的socket ServerSocket svr = new ServerSocket(8989); 开始侦听请求    ...

汉果James ⋅ 2012/09/06 ⋅ 1

java Socket实现简单在线聊天(三)

在上一篇,利用线程使服务端实现了能够接收多客户端请求的功能,这里便需要客户端接收多客户端消息的同时还能把消息转发到每个连接的客户端,并且客户端要能在内容显示区域显示出来,从而实现...

涂宗勋 ⋅ 2016/06/03 ⋅ 0

流之过滤器流(数据流)

DataInputStream和DataOutputStream类提供了一些方法,可以用二进制格式读/写Java的基本数据类型和字符串。所用的二进制格式主要用于在两个不同的Java程序之间交换数据(可能通过网络连接、数...

柳哥 ⋅ 2014/10/12 ⋅ 0

java Socket实现简单在线聊天(一)

最近的项目有一个在线网页交流的需求,由于很久以前做过的demo已经忘记的差不多了,因此便重新学习一下。 我计划的大致实现步骤分这样几大步: 1、使用awt组件和socket实现简单的单客户端向服...

涂宗勋 ⋅ 2016/06/03 ⋅ 0

socket聊天室自由通信1

额,最近在写毕业设计 然后 悟出了一些东西。 以前做过一个比较成熟的局域网聊天系统。当时是在老师的帮助下完成的。但当时想着要把那个作品保存下来的,但是不幸发生了,就在我要离开的前一...

木子甲由 ⋅ 2013/03/29 ⋅ 5

JavaSE的输入流、输出流

首先是四大基本抽象流,具体如下: 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer 以上四个流都是抽象流)(但不是抽象类),通常我们使用的都是它们的子类(注意是通...

天蚕宝衣 ⋅ 2016/06/07 ⋅ 0

JavaSE——数据类型流、内存流、打印流

班级编号:VIP17 学员名字:小吴 课程名称:JAVASE 数据类型流 DataOutputStream是数据类型输出流,它能把基本数据类型直接写入到文件里; DataInputStream是数据类型输入输流,它能把基本数...

凯哥学堂 ⋅ 05/07 ⋅ 0

Android第十八天

一:内存流 1.ByteArrayOutputStream (内存输出流) public ByteArrayOutputStream() public byte[] toByteArray() 创建一个新分配的 byte 数组。其大小是此输出流的当前大小,并且缓冲区的有...

黄晓磊 ⋅ 2016/06/22 ⋅ 0

一个多线程聊天室,服务器发不了信息

服务器 package dier; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.DataInp......

shijunxing ⋅ 2012/11/08 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部