Java数据流学习

数据流

与机器无关的操作Java基本数据类型。网络传输会用。

  • DataInputStream
    数据输入流允许应用程序以与机器无关的方式从底层输入流中读取Java基本数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。DataInputStream对于多线程访问不一定是安全的。线程安全是可选的,他由此类方法是使用者负责。

  • DataOutputStream
    数据输出流允许应用程序以适当的方式将基本Java数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。

代码示例

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.junit.Test;

public class DataStreamDemo {
    // 向文件中写入数据
    @Test
    public void writeData() {
        File file = new File("F:/test.txt");
        try {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));

            DataOutputStream dos = new DataOutputStream(bos);

            dos.writeInt(10);// 写入4个字节
            dos.writeByte(5);// 写入一个字节
            dos.writeUTF("爱");

            dos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }// writeData

    // 从文件中读取数据
    @Test
    public void readData() {
        File file = new File("F:/test.txt");
        try {
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));

            DataInputStream dis = new DataInputStream(bis);

            // 读的时候应按照写入的顺序
            int num = dis.readInt();
            byte b = dis.readByte();
            String str = dis.readUTF();

            System.out.println(num + "," + b + "," + str);
            dis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }// readData
}

猜你喜欢

转载自www.cnblogs.com/zxfei/p/10879881.html