Java I/O 教程(七) DataOutputStream和DataInputStream

Java DataOutputStream Class


Java DataOutputStream class 可以以机器无关方式往指定输出流写入Java原始数据类型,例如int, double, long等。

类定义


public class DataOutputStream extends FilterOutputStream implements DataOutput  

构造函数

DataOutputStream(OutputStream out)
创建一个新的数据输出流往底层输出流写数据

常用函数

int size()                                    返回写入数据输出流字节数
void write(int b)                            写入指定字节
void write(byte[] b, int off, int len)         每次写入len长度字节
void writeBoolean(boolean v)                写入boolean,占1个字节
void writeChar(int v)                        写入char,占2个字节
void writeChars(String s)                    以字符序列方式写入字符串
void writeByte(int v)                        写字节
void writeBytes(String s)                    以字节序列方式写入字符串
void writeInt(int v)                        写入int
void writeShort(int v)                        写入short
void writeLong(long v)                        写入long
void writeUTF(String str)                    以UTF8格式往输出流写入字符串
void flush()                                冲刷数据输出流

例子

package com.dylan.io;

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

/**
 * @author xusucheng
 * @create 2018-01-06
 **/
public class DataOutputStreamDemo {
    public static void main(String[] args) throws IOException{
        OutputStream fos = new FileOutputStream("D:\\testout.txt");
        DataOutputStream dos = new DataOutputStream(fos);
        dos.writeInt(65);
        dos.writeUTF("Java is great!");
        dos.flush();
        dos.close();

        System.out.println("写入成功!");
    }
}


Java DataInputStream Class


Java DataInputStream class 允许应用程序以机器无关方式从指定输入流读取java原始数据

类定义


public class DataInputStream extends FilterInputStream implements DataInput  

构造函数

DataInputStream(InputStream in)
使用指定的输入流创建一个数据输入流

常用方法

int read(byte[] b)                            读取字节
int read(byte[] b, int off, int len)        每次读取len长度字节
int readInt()                                读取int
byte readByte()                                读取一个字节
char readChar()                                读取2个字节
double readDouble()                            读取8字节,返回一double类型值
boolean readBoolean()                        读取一个字节,如果非0返回true,否则返回false
int skipBytes(int x)                        跳过x个字节
String readUTF()                            以UTF8格式读取一个字符串
void readFully(byte[] b)                    从输入流读取字节并存在缓冲数组中
void readFully(byte[] b, int off, int len)    从输入流读取len字节

例子

package com.dylan.io;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * @author xusucheng
 * @create 2018-01-06
 **/
public class DataInputStreamDemo {
    public static void main(String[] args) throws IOException{
        InputStream is = new FileInputStream("D:\\testout.txt");
        DataInputStream dis = new DataInputStream(is);
        int count = dis.available();
        byte[] bytes = new byte[count];
        dis.read(bytes);
        for(byte b:bytes){
            char c = (char)b;
            System.out.print(c);
        }
        dis.close();
    }
}



下一章

Java I/O 教程(八) Writer和Reader


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值