1、介绍
数据输入/输出流(DataInputStream类与DataOutputStream类)允许应用程序以与机器无关的方式从底层输入流中读取基本java数据类型。当读取一个数据时,不必再关心这个数值应当是哪种字节。
2、DataInputStream类与DataOutputStream类的构造方法如下
- DataInputStream(InputStream in):使用指定的基础InputStream创建一个DataInputStream
- DataOutputStream out):创建一个新的数据输出流,将数据写入指定基础输出流。DataOutputStream类提供了如下3种写入字符串的方法。
- writeBytes(String s )
- writeChars(String s)
- writeUTF(String s)
因为java中字符是Unicode编码,双字节的。writeBytes只是将字符串中的每一个字符的低字节内容写入目标设备中,而writeChars将字符串的每一个字符的两个字节的内容都写到目标设备中,writeUTF将字符串按照UTF编码后的字节长度写入目标设备,然后才是每一个字节的UTF编码。
说明:DataInputStream类只提供一个readUTF()方法返回字符串,这是因为要在一个连续的字节流读取一个字符串,如果没有特殊的标记作为一个字符串的结尾,并且不知道这个字符串的长度,就无法知道读取到什么位置才是这个字符串的结束。DataOutputStream类中只有writeUTF()方法向目标设备中写入字符串的长度,所以也能准确地读回写入字符串。
3、程序代码(列子)
java">import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;public class DataOutInputStream {public static void main(String[] args){try{FileOutputStream outputStream=new FileOutputStream("word.txt");//创建 FileOutputStream对象DataOutputStream dataOutputStream=new DataOutputStream(outputStream);//创建DataOutputStream对象dataOutputStream.writeUTF("使用writeUTF()方法写入数据");//写入磁盘数据dataOutputStream.writeChars("使用writeChars()方法写入数据");dataOutputStream.writeBytes("使用writeBytes()方法写入数据");dataOutputStream.close();//将DataOutputStream流关闭outputStream.close();//将FileOutputStream流关闭FileInputStream inputStream=new FileInputStream("word.txt");//创建FileInputStream对象DataInputStream dataInputStream=new DataInputStream(inputStream);//创建DataInputStream对象System.out.println("数据文件信息输出:"+dataInputStream.readUTF());//将文件数据输出}catch (Exception e){e.printStackTrace();//处理异常信息}}
}