review30

 

数据流

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

以下是DataInputStream和DataOutputStream的构造方法。

  • DataInputStream(InputStream in)创建的数据输入流指向一个由参数in指定底层输入流。
  • DataOutputStream(OutputStream out)创建的数据输出流指向一个由参数out指定的底层输出流。

数据流需要使用到底层流。

代码展示如下所示:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test02 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("E:/test/write01.txt");
        
        try {
            FileOutputStream out = new FileOutputStream(file);
            DataOutputStream outData = new DataOutputStream(out);
            outData.writeInt(100);
            outData.writeLong(123456789);
            outData.writeFloat(3.1415926f);
            outData.writeDouble(987654321.1234563);
            outData.writeBoolean(false);
            outData.writeChars("Hello! 大家好");
            
        } 
        catch (IOException e) {}
        
        try {
            FileInputStream in = new FileInputStream(file);
            DataInputStream inData = new DataInputStream(in);
            System.out.println(inData.readInt());
            System.out.println(inData.readLong());
            System.out.println(inData.readFloat());
            System.out.println(inData.readDouble());
            System.out.println(inData.readBoolean());
            
            char c = '\0';
            while((c = inData.readChar()) != '\0')
            System.out.print(c);
            
        } 
        catch (IOException e) {}
        
        
    }

}

运行结果如下所示:

字符串的读取是读一个一个字符。

该代码的数据流没有关闭,这样是不正确的。

只有字符数组里是可以不用关闭的。

posted @ 2018-08-10 20:39  寒潭渡鹤影  阅读(92)  评论(0编辑  收藏  举报