JAVA基础——数据流

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( );

}     }

输出结果:

原文地址:https://www.cnblogs.com/huan-guo/p/8524630.html

时间: 2024-10-14 21:43:38

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

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

接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream).使用对象输出流输出序列化对象的步骤,有时也成序列化,而使用对象输入流读入对象的过程,有时也称为反序列化 一个对象产生之后实际上是在内存中为其开辟了一个存储空间,方便存储信息. 对象序列化就是把一个对象变成二进制的数据流的一个方法,通过对象序列化可以反驳的

java基础之概谈xml文件解析

XML已经成为一种很通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.诸多web应用框架,其可配置的编程方式,给我们的开发带来了很大程度的便捷,但细细想来,它们的应用无一不是java bean与xml之间的转换解析.本文将对xml的两种操作标准DOM和SAX,从它们各自的特点.适用范围等方面进行简单介绍. DOM (Document Object Model) :DOM标准中,采用W3C标准表示XML,有多重语言支持,因此其跨平台性很好.采用DOM规范

JAVA基础-02

Java学习笔记 Java基础  基本类型不是new出来的则是放在栈里面,对象的引用也是放在栈里面的,只要是用new()来新建对象的,都会在堆中创建 String类被设计成为不可改变(immutable)的类.如果你要改变其值,可以,但JVM在运行时根据新值悄悄创建了一个新对象,然后将这个对象的地址返回给原来类的引用.这个创建过程虽说是完全自动进行的,但它毕竟占用了更多的时间.在对时间要求比较敏感的环境中,会带有一定的不良影响. 关于String str = "abc"的内部工作.Ja

java基础知识小小结

java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int

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

Java基础(十一) Stream I/O and Files 1. 流的概念 程序的主要任务是操纵数据.在Java中,把一组有序的数据序列称为流.根据操作的方向,可以把流分为输入流和输出流两种.程序从输入流读取数据,向输出流写出数据. 文件 输入流 输出流 文件 内存 -------------> Java程序 ------------------> 内存 键盘 控制台 | | 数据源 数据目的地 Java I/O系统负责处理程序的输入和输出,I/O类库位于java.io包中,它对各种常见的

黑马程序员——Java基础---io(上)

黑马程序员——Java基础---io(上) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java I/O系统负责处理程序的输入和输出,I/O类库位于java.io包中,它对各种常见的输入流和输出流进行了抽象.如果数据流中最小的数据单元是字节,那么称这种流为字节流:如果数据流

java基础学习总结——网络编程

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——网络编程 一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程. 二.网络通信协议及接口 三.通信协议分层思想 四.参考模型 五.IP协议 每个人的电脑都有一个独一无二的IP地址,这样互相通信时就不会传错信息了. IP地址是用一个点来分成四段的,在计算机内部IP地址是用四个字节来表示的,一个字节代表一段,每一个字节代表的数最大只能到达255. 六.TCP协议和UD

java基础学习总结——流

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——流 一.JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们想读文件里面的数据怎么办呢?是通过一个流的方式来读,咱们要想从程序读数据,对于计算机来说,无论读什么类型的数据都是以010101101010这样的形式读取的.怎么把文件里面的数据读出来呢?你可以把文件想象成一

Java基础总结(内部版)【转】

一.JVM 1.内存模型 1.1.1 内存分几部分 (1)程序计数器 可看作当前线程所执行的字节码的**行号指示器**.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. 在线程创建时创建.执行本地方法时,PC的值为null.为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,线程私有. (2)Java虚拟机栈 线程私有,生命周期同线程.**每个方法在执行同时,创建栈帧*