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对象流

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

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