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
}
posted on 2019-05-17 10:15  行之间  阅读(983)  评论(0编辑  收藏  举报