DataInputStream 类和DataOutputStream 类

在前面的学习中,我们知道数据流处理的数据都是指字节或字节数组,但实际上很多时候不是这样的,它需要数据流能直接读、写各种各样的java语言的基本数据类型。例如在一个文件中存放300个整数值,从中读取时,希望按int为基本单位进行读取,这样可以大大节省时间。这时就需要使用DataInputStream和DataOutputStream,DataInputStream和DataOutputStream不但支持父类InputStream和OutputStream中的方法,以原有方式读写数据,同时还允许通过数据流来读写java语言的基本数据类型,包括int、float、double和double等。其构造函数形式如下:
    DataInputStream(Obj)

DataOutputStream(Obj)

Obj为已经建立好的输入输出数据流对象
     DatainputStream 和 DataOutputStream之所以能够对这些原始类型进行操作,是因为他们有一组特定的方法。

DataInputStream 的常用方法如下:
     -> byte readByte()

-> long readLong()

-> double readDouble()

-> boolean readBoolean()

-> String readUTF()

-> int readInt()

-> float readFloat()

-> short readShort()

-> char readChar()
     以上这些方法分别对int、byte、float、char等类型进行读取。
     -> void writeByte(int a)

-> void writeLong(long a)

-> void wirteDouble(double a)

-> void writeBoolean(boolean a)

-> void writeUTF(String a)

-> void writeInt(int a)

-> void writeChar(char a)

-> void writeFloat(float a)

-> void writeShort(short a)
     以上这些方法分别对int、byte、float、char等类型进行写入。

 以下是关于DataInputStream 和 DataOutputStream 实例:

package com.feicuiedu.test;

import java.io.*;
    public class Liu_Test{

public static void main(String args[ ] ) throws Exception{

FileOutputStream fos = new FileOutputStream("text.txt");

DataOutputStream dos = new DataOutputStream(fos);

dos.writeInt(12);

dos.writeDouble(2.23d);

dos.writeBoolean(true);

dos.writeUTF("java 数据流测试#");

fos.close( );

FileInputStream fis = new FileInputStream("text.txt");

DataInputStream dis = new DataInputStream(fis);

System.out.println(dis.readInt( ) );

System.out.println(dis.readDouble( ) );

System.out.println(dis.readBoolean( ) );

System.out.println(dis.readUTF( ) );

fis.close( );

}     }

输出结果:

JAVA基础——数据流的更多相关文章

  1. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)

    Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...

  2. Java基础IO类之数据流

    DataInputStream: 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本java数据类型.应用程序可以使用数据输出流 写入稍后由数据输入流读取的数据.DataInputStrea ...

  3. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  4. Java基础知识学习(一)

    部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...

  5. 【概念笔记】JAVA基础 - part2

    IT`huhiu前言录 这是续JAVA基础 - part1 链接http://www.cnblogs.com/ithuhui/p/5922067.html的. 笔记慢慢在修改和补充 JAVA里面重要的 ...

  6. Java基础(十一) Stream I/O and Files

    Java基础(十一) Stream I/O and Files 1. 流的概念 程序的主要任务是操纵数据.在Java中,把一组有序的数据序列称为流. 依据操作的方向,能够把流分为输入流和输出流两种.程 ...

  7. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  8. 毕向东—Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  9. java基础篇---I/O技术(三)

    接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象 ...

随机推荐

  1. bzoj1296 [SCOI2009]粉刷匠——背包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1296 对于不同木板之间,最终统计答案时做一个分组背包即可: 而要进行分组背包,就需要知道每个 ...

  2. bzoj1426 (洛谷P4550) 收集邮票——期望

    题目:https://www.luogu.org/problemnew/show/P4550 推式子……:https://blog.csdn.net/pygbingshen/article/detai ...

  3. c#截屏功能的实现

    using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Ru ...

  4. char-rnn-tensorflow源码解析及结构流程分析

    char-rnn-tensorflow由飞飞弟子karpathy编写,展示了如何用tensorflow来搭建一个基本的RNN(LSTM)网络,并进行基于char的seq2seq进行训练. 数据读取部分 ...

  5. 09_传智播客iOS视频教程_自动释放池与NSLog函数

    不要管什么是自动释放池,现在给你讲你也听不懂.就业班才讲,不要知道太多,知道太多对你不好.电影里面死的最惨的人就是知道最多的人.把代码写到自动释放池里面就可以了.NSLog是printf的增强版,它增 ...

  6. 爬虫—Selenium爬取JD商品信息

    一,抓取分析 本次目标是爬取京东商品信息,包括商品的图片,名称,价格,评价人数,店铺名称.抓取入口就是京东的搜索页面,这个链接可以通过直接构造参数访问https://search.jd.com/Sea ...

  7. div不换行

    三种方法: 1.float <div class="div1">123</div> <div class="div2">45 ...

  8. jQuery委托

    $('#container').on('click', '.elementClass', function() { // code }); http://stackoverflow.com/quest ...

  9. [转][ASP.NET MVC]如何定制Numeric属性/字段验证消息

    本文转自:http://www.cnblogs.com/artech/archive/2012/02/13/NumericPropertyValidation.html 对于一个Numeric属性/字 ...

  10. 配置Oracle监听器

    Oracle的监听和网络服务都可以在Net Manager中配置,如下图.也可以在上面的那个Net Configuration Assistant中配置,只是Net Manager比较方便些. Ora ...