Dotcpp  >  编程教程  >  Java输入输出流  >  Java数据流

Java数据流

点击打开在线编译器,边学边练

DataInputStream和DataOutputStream类创建的对象称为数据输入流数据输出流。这两个流是很有用的两个流,它们允许程序按着机器无关的风格读取Java原始数据。也就是说,当读取一个数值时,不必再关心这个数值应当是多少个字节。


DataInputStream和DataOutputStream的构造方法如下:

1)DataInputStream(InputStream in)

创建的数据输入流指向一个由参数in指定的底层输入流。

2)DataOutputStream(OutputStream out)

创建的数据输出流指向一个由参数out指定的底层输出流。


DataInputStreamDataOutputStream类的常用方法如下:

方法说明
close()关闭流
readBoolean()读取一个布尔值
readByte()读取一个字节
readChar()读取一个字符
readDouble()读取一个双精度浮点值
readFloat()读取一个单精度浮点值
readInt()读取一个int值
readLong()读取一个长型值
readShort()读取一个短型值
readUnsignedByte()读取一个无符号字节
readUnsignedShort()读取一个无符号短型值
readUTF()读取一个UTF字符串
skipBytes(int n)跳过给定数量的字节
writeBoolean(boolean v)写入一个布尔值
writeBytes(String s)写入一个字符串
writeChars(String s)写入字符串
writeDouble(double v)写入一个双精度浮点值
writeFloat(float v)写入一个单精度浮点值
writeInt(int v)写入一个int值
writeLong(long v)写入一个长型int值
writeShort(int v)写入一个短型int值
writeUTF(String s)写入一个UTF字符串


例如,写几个Java类型的数据到一个文件,然后再读出来:

import java.io.*;
public class Main {
    public static void main(String args[]) {
        File file = new File("apple.txt");
        try {
            FileOutputStream fos = new FileOutputStream(file);
            DataOutputStream outData = new DataOutputStream(fos);
            outData.writeInt(100);
            outData.writeLong(123456);
            outData.writeFloat(3.1415926f);
            outData.writeDouble(987654321.1234);
            outData.writeBoolean(true);
            outData.writeChars("How are you doing");
        }
        catch(IOException e) {}
        try {
            FileInputStream fis = new FileInputStream(file);
            DataInputStream inData = new DataInputStream(fis);
            System.out.println(inData.readInt()); //读取int数据
            System.out.println(inData.readLong()); //读取long数据
            System.out.println(+inData.readFloat()); //读取float数据
            System.out.println(inData.readDouble()); //读取double数据
            System.out.println(inData.readBoolean()); //读取boolean数据
            char c = '\0';
            while((c=inData.readChar()) !='\0') { //'\0'表示空字符
                System.out.print(c);
            }
        }
        catch(IOException e) {}
    }
}



本文固定URL:https://www.dotcpp.com/course/875

上一课:

Java数组流

下一课:

Java对象流

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

Java教程
第一章 Java入门
第二章 Java运算符和表达式
第三章 Java流程控制
第四章 Java类和对象
第五章 Java子类与继承
第六章 Java接口与实现
第七章 Java内部类与异常类
第八章 Java常用实用类
第九章 Java输入输出流
第十章 Java数组
Dotcpp在线编译      (登录可减少运行等待时间)