1、提供更加强大的读取功能,不是只能读取字符或者字节类型
2、我们希望读取的不仅仅是一个字节,而是一个字符串、一个double类型的数据等等能够直接用的数据(比如从磁盘中读取生命值,直接读取double类型的是很方便的,但是直接读取字符串是很麻烦的)
FileInputStream:节点流可以从文件中读数据,每次读取一个节点回来,但是读节点对程序员来说没有太大的用处
DoubleInputStream:希望可以直接读一个double等一些基本类型回来,读之后就能直接用了,但是无法直接从文件中直接读取数据
3、为了结合上面两者的优点,也就是既能直接读取字节,还能将直接读取的字节转换成自己想要的类型,这就需要组装
读的时候(文件或者其它位置读写字节)
数据源—FileInputStream(读字节)—BufferedInputStream(处理流,buffer+缓冲区,效率更高,但是读出来的还是字节)—DataInputStream(处理流,可以读double等一些基本类型的数据)
将读出来的字节转换成更有用的数据类型
写的时候(将不同的数据写到磁盘中)
数据—DataOutputStream—BufferedOutputStream—FileOutputStream(二进制往磁盘中写)
DataInputStream从FileInputStream中读回的字节,通过DataInputStream转换成各种数据类型,返回给s变量。
DataInputStream din=null;
try
{
din=new DataInputStream(new FileInputStream("E:\\\\workplace\\\\KeJian\\\\unicode.txt"));
}
catch(FileNotFoundException e)
{
System.out.println("找不到文件");
}
问题:DataInputStream中是什么类型的
4、顺序问题,为了转换成什么样,就最后new谁