java中数据输入/输出流

1、介绍

数据输入/输出流(DataInputStream类与DataOutputStream类)允许应用程序以与机器无关的方式从底层输入流中读取基本java数据类型。当读取一个数据时,不必再关心这个数值应当是哪种字节。

2、DataInputStream类与DataOutputStream类的构造方法如下

  • DataInputStream(InputStream in):使用指定的基础InputStream创建一个DataInputStream
  • DataOutputStream out):创建一个新的数据输出流,将数据写入指定基础输出流。DataOutputStream类提供了如下3种写入字符串的方法。
  1. writeBytes(String s )
  2. writeChars(String s)
  3. writeUTF(String s)

因为java中字符是Unicode编码,双字节的。writeBytes只是将字符串中的每一个字符的低字节内容写入目标设备中,而writeChars将字符串的每一个字符的两个字节的内容都写到目标设备中,writeUTF将字符串按照UTF编码后的字节长度写入目标设备,然后才是每一个字节的UTF编码。

说明:DataInputStream类只提供一个readUTF()方法返回字符串,这是因为要在一个连续的字节流读取一个字符串,如果没有特殊的标记作为一个字符串的结尾,并且不知道这个字符串的长度,就无法知道读取到什么位置才是这个字符串的结束。DataOutputStream类中只有writeUTF()方法向目标设备中写入字符串的长度,所以也能准确地读回写入字符串。

3、程序代码(列子)

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();//处理异常信息
        }
    }
}

4、程序运行结果

java中数据输入/输出流_第1张图片

你可能感兴趣的:(java,开发语言)