数据操作流(DataOutputStream和DataInputStream)

DataOutputStream

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

DataOutputStream

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

 

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


public class Test_Three {
	
	public static void main(String[] args) throws Exception{
		
		/**
		* DataInputStream与DataOutputStream
		* 
		* 1.DataInputStream → FileInputStream → InputStream
		* 	(数据输入流允许应用程序以机器无关的方式从底层输入流中读取基本java数据类型)
		*   
		*   DataOutStream → FileOutputStream → OutputStream
		*   (数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流中。
		*   	然后,应用程序可以使用数据输入流将数据读入。)
		*   
		*   2.流:传输的二进制。
		*/
		/**
		* 1.写
		*/
		File file = new File("C:/person.data");
		//文件输出流
		FileOutputStream outputStream = new FileOutputStream(file);
		//数据输出流
		DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
		
		//给person.data这个文件写入数据
		dataOutputStream.writeInt(123);
		dataOutputStream.writeUTF("写入中文,ok");
		dataOutputStream.writeFloat(234.4f);
		
		//关闭流
		dataOutputStream.flush();
		dataOutputStream.close();
		
		/**
		* 2.读
		*/
		//文件输入流
		FileInputStream inputStream = new FileInputStream(file);
		//数据输入流
		DataInputStream dataInputStream = new DataInputStream(inputStream);
		
		//读出
		int firstInt = dataInputStream.readInt();
		String str = dataInputStream.readUTF();
		float secFlt = dataInputStream.readFloat();
		
		System.out.println(firstInt+"---"+str+"-----"+secFlt);
		dataInputStream.close();
		
		/**
		* ★注意事项:读取和写入的顺序必须一样,否则抛出错误,也不能少读取。
		*/
	}


}


 

你可能感兴趣的:(java,io(一))