博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA DataOutputStream和DataInputStream
阅读量:5899 次
发布时间:2019-06-19

本文共 3182 字,大约阅读时间需要 10 分钟。

是Java中输入输出流的装饰类

DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。

主要方法:

void write(byte[] b,int off,int len);//将byte数组off角标开始的len个字节写到OutputStream 输出流对象中。

void write(int b);//将指定字节的最低8位写入基础输出流。

void writeBoolean(boolean b);//将一个boolean值以1-byte形式写入基本输出流。

void writeByte(int v);//将一个byte值以1-byte值形式写入到基本输出流中。

void writeBytes(String s);//将字符串按字节顺序写入到基本输出流中。

void writeChar(int v);//将一个char值以2-byte形式写入到基本输出流中。先写入高字节。

void writeInt(int v);//将一个int值以4-byte值形式写入到输出流中先写高字节。

void writeUTF(String str);//以机器无关的的方式用UTF-8修改版将一个字符串写到基本输出流。该方法先用writeShort写入两个字节表示后面的字节数。

int size();//返回written的当前值

 

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

主要方法:

int read(byte[] b);//从输入流中读取一定的字节,存放到缓冲数组b中。返回缓冲区中的总字节数。

int read(byte[] buf,int off,int len);//从输入流中一次读入len个字节存放在字节数组中的偏移off个字节及后面位置。

String readUTF();//读入一个已使用UTF-8修改版格式编码的字符串

String readLine();

boolean readBoolean;

int readInt();

byte readByte();

char readChar();

 

注意:DataInputStream与DataOutputStream必须成对出现  DataInputStream读数据时,需要和DataOutputStream写入时的顺序一致,也不能跳过读

package io;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class DataIOTest{    public static void main(String[] args)    {        writeData();        readData();    }    private static void writeData()    {        DataOutputStream dos = null;        try        {            dos = new DataOutputStream(new FileOutputStream(new File("dataoutput.txt")));        } catch (FileNotFoundException e1)        {            e1.printStackTrace();        }        try        {            dos.writeInt(123);            dos.writeByte('C');            dos.writeDouble(12.345);            dos.writeFloat((float) 1.23);            dos.writeUTF("this is a string");            dos.flush();        } catch (IOException e)        {            e.printStackTrace();        } finally        {            if (null != dos)            {                try                {                    dos.close();                } catch (IOException e)                {                    e.printStackTrace();                }            }        }    }    private static void readData()    {        DataInputStream dis = null;        try        {            dis = new DataInputStream(new FileInputStream(new File("dataoutput.txt")));        } catch (FileNotFoundException e)        {            e.printStackTrace();        }        try        {            System.out.println(dis.readInt());            System.out.println((char)dis.readByte());            System.out.println(dis.readDouble());            System.out.println(dis.readFloat());            System.out.println(dis.readUTF());        } catch (IOException e)        {            e.printStackTrace();        } finally        {            if (null != dis)            {                try                {                    dis.close();                } catch (IOException e)                {                    e.printStackTrace();                }            }        }    }}

 

转载于:https://www.cnblogs.com/qqdcy/p/6539213.html

你可能感兴趣的文章
Office365跨订阅迁移邮箱-批量导入用户PST文件
查看>>
关于Objective-c内存管理的一些笔记
查看>>
用Allegro对s3c2410的BGA封装布线
查看>>
江苏电信:SOC建设介绍
查看>>
android 应用开发:android studio使用笔记
查看>>
Centos7 YUM安装MariaDB 10.0
查看>>
Windows 2008 R2 远程桌面服务(八)远程桌面服务器安全设置
查看>>
Spring data jpa模糊查询,根据某一个字段,或者多个字段进行模糊查询
查看>>
制作QQ2011绿色版不求人
查看>>
c++filt 命令
查看>>
android控件EditText
查看>>
shell编程学习之tr
查看>>
maven多web合并项目
查看>>
Wget用法、参数解释的比较好的一个文章
查看>>
activiti学习笔记01_20130909
查看>>
学习者来报道
查看>>
学习:java设计模式—工厂模式
查看>>
解析nginx负载均衡
查看>>
welcome_file_action
查看>>
Nginx负载均衡的实现和调度算法
查看>>