Java data-flow operation 数据操作流


数据操作流

  • 是一种装饰类流,建立在实体流上,让程序不需要考虑数据所占字节个数就能正确地完成读写操作;
  • 包括数据输入流 DataInputStream 类和数据输出流 DataOutputStream 类;

1. DataInputStream

  • 允许程序以与机器无关的方式从底层输入流中读取基本 Java 数据类型;
  • java.io.DataInputStream,详见:Class DataInputStream

2. DataOutputStream

  • 允许程序以适当方式将基本 Java 数据类型写入输出流;
  • java.io.DataOutputStream,详见:Class DataOutputStream

3. 应用案例

  • 写入 Java 基本数据类型的数据,读取后显示:
import java.io.*;

public class Test {
    public static void main(String args[]) {
        File file = new File("C:\\Users\\80626\\Desktop\\1.txt");
        try {
            FileOutputStream out = new FileOutputStream(file);
            DataOutputStream outData = new DataOutputStream(out);
            outData.writeBoolean(true);
            outData.writeChar('A');
            outData.writeInt(10);
            outData.writeLong(88888888);
            outData.writeFloat(3.14f);
            outData.writeDouble(3.1415926897);
            outData.writeChars("hello,every one!");
        } catch (IOException e) {
        }

        try {
            FileInputStream in = new FileInputStream(file);
            DataInputStream inData = new DataInputStream(in);
            System.out.println(inData.readBoolean());//读取boolean数据
            System.out.println(inData.readChar());//读取字符数据
            System.out.println(inData.readInt());//读取int数据
            System.out.println(inData.readLong());//读取long数据
            System.out.println(+inData.readFloat());//读取float数据
            System.out.println(inData.readDouble());//读取double数据

            char c = '\0';
            while ((c = inData.readChar()) != '\0')//读入字符不为空
                System.out.print(c);
        } catch (IOException e) {
        }
    }
}
/*
输出
true
A
10
88888888
3.14
3.1415926897
hello,every one!

文件
 A
    LV8@H趺@	!鸜檎 h e l l o , e v e r y   o n e !
 */
  • 注意:DataOutputStream 的 writeInt(),writeDouble() 等方法输出的内容不是字符型的,因此显示为乱码,但可以通过相应的 readInt(),readDouble() 等方法读出,上述方法输出的内容是给程序使用的,而不是给人来看的;
发布了242 篇原创文章 · 获赞 244 · 访问量 9607

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104744630