作用
简单来说,就是可以从二进制流中读取数据并转化为java的基本类型.


那么看看起方法.比如说

以readInt为例,看看源码

 /*** Reads four input bytes and returns an* {@code int} value. Let {@code a-d}* be the first through fourth bytes read. The value returned is:* <pre>{@code* (((a & 0xff) << 24) | ((b & 0xff) << 16) |*  ((c & 0xff) <<  8) | (d & 0xff))* }</pre>* This method is suitable* for reading bytes written by the {@code writeInt}* method of interface {@code DataOutput}.** @return     the {@code int} value read.* @exception  EOFException  if this stream reaches the end before reading*               all the bytes.* @exception  IOException   if an I/O error occurs.*/int readInt() throws IOException;

接口中当然没有方法体,具体干了什么要看起实现类.
以实现了datainput接口且比较常用的Datainputstream为例

readint这个就是读取四个字节的意思

 public final int readInt() throws IOException {int ch1 = in.read();int ch2 = in.read();int ch3 = in.read();int ch4 = in.read();if ((ch1 | ch2 | ch3 | ch4) < 0)throw new EOFException();return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));}

调用了read方法,其作用为

从输入流中读取下一个数据字节。 以0到255的整数形式返回值字节。如果由于已到达流的末尾而没有字节可用,则返回值-1。
此方法将阻塞,直到可用输入数据,检测到流的末尾或引发异常为止。

举个应用

 @Overridepublic void readFields(DataInput in) throws IOException {value = in.readLong();}@Overridepublic void write(DataOutput out) throws IOException {out.writeLong(value);}

使用的时候,传入一个DataInput对象,就可以从中读取解析数据. 也可以说叫做反序列化.
传入一个DataOutput 对象,就可以往其中写入内容.写成二进制文件,就相当于序列化了.

java DataInput接口相关推荐

  1. java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用

    在H2数据库引擎中获取代码执行权限的技术早已是众所周知,但有个要求就是H2能够动态编译Java代码.而本文将向大家展示以前没有公开过的利用H2的方法,并且无需使用Java编译器,即通过原生库和JNI( ...

  2. java多线程查询_利用Java函数式接口处理多线程查询

    Java函数式接口 有且只有一个抽象方法的接口被称为函数式接口. @FunctionalInterface注解: 该注解可用于一个接口的定义上, 一旦使用该注解来定义接口, 编译器将会强制检查该接口是 ...

  3. java滥用接口_吐槽一下项目中的代码坏味道:滥用java常量

    我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...

  4. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

  5. java类接口的区别_【Java基础】java接口和类的区别-瑶瑶吖的回答

    基本语法区别 Java中接口和抽象类的定义语法分别为interface与abstract关键字. 抽象类:在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称为 ...

  6. java 实现接口后重写方法报错

    java 实现接口后重写方法报错 java 实现接口后重写方法报错 The method contextDestroyed(ServletContextEvent) of type InitListe ...

  7. Java 利用接口实现回调

    在 Java 支持方法指针之前,Java 接口不能提供一种实现回调的好方法.如果您习惯于传递在事件驱动编程模型中调用的函数指针,则您会喜欢本技巧.  熟悉 MS-Windows 和 X Window ...

  8. java一个接口执行结束释放内存_java的灵魂--JVM虚拟机

    JVM是运行在操作系统之上的,它与硬件没有直接的交互 JVM体系结构 1.类加载器 负责加载class文件,class文件在文件开头有特定的文件标示, 并且ClassLoader只负责class文件的 ...

  9. java private 接口_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

最新文章

  1. python logger
  2. Silverlight为什么要使用程序扩展服务
  3. Dijkstra算法的另一种证明
  4. linux dmaengine编程
  5. ACM PKU 2559 Largest Rectangle in a Histogram http://acm.pku.edu.cn/JudgeOnline/problem?id=2559
  6. php框架开发(草稿)
  7. 每天一道剑指offer-数值的整数次方
  8. 编译安装nginx并修改版本头信息—参考实例
  9. Object-c学习笔记十八-----NSPredicate
  10. 华为 HG255D 刷openwrt trunk 支持ipv6
  11. wps小写金额转大写快捷键_WPS轻松办公—将数字转换中文大写的两种方法
  12. obs噪音抑制调多少合适_(3)阿里国际站OBS申请设置使用教程,OBS音频没有声音怎么办?国际站直播回放如何下载?...
  13. 自己制作脚手架——完整版
  14. 汇编idiv带符合除法指令。。。。
  15. (非)线性代数方程、(非)线性微分方程 含义
  16. excel如何拆分数据
  17. 力天创见客流统计设备应用分析
  18. Android TextView详解(一)
  19. RLC串并联谐振回路特性、如何判断容性感性
  20. GUI(Graphical User Interface)—关于一道题的按钮事件处理知识点总结

热门文章

  1. java二维码生成代码_java快速开发平台功能特点之代码生成器
  2. 163邮箱苹果设置不成功_苹果变安卓不是不可能,Corellium让iPhone成功安装安卓系统...
  3. 字节跳动教育业务怎么样_字节跳动将重点关注教育业务,今年预计招聘超过一万人...
  4. mysql 字符串用省略号_CSS截取字符串自动补充省略号
  5. 故事的小黄花,从CSDN那年就飘着
  6. php 使用json 教程,如何在php中正确的使用json_PHP
  7. 高通qusb bulk驱动_1999元!Redmi新机发布:首发高通全新SoC
  8. python开发好吗_用Python开发应用好用吗?
  9. 神经网络 异或_深度学习入门笔记(2)线性神经网络
  10. 成功 打不开_switch商店打不开怎么办?手把手教你用这五种方法成功进入eshop