日期:2014-05-20  浏览次数:20938 次

求答疑~从socket中获取数据流(InputStream)后,为什么还需要转成DataInputStream,才能保存到硬盘中?
如题,请解释为什么要进行如下的操作,
         netIn = acceptfilesocket.getInputStream();
         in = new DataInputStream(new BufferedInputStream(netIn));
谢谢!

代码如下:
socket acceptfilesocket;
InputStream netIn = null;
InputStream in = null;
try
{
         netIn = acceptfilesocket.getInputStream();
         in = new DataInputStream(new BufferedInputStream(netIn));
} catch (IOException e1)
{
         System.out.print("接收文件创建网络接受流接受服务器文件数据异常");
}
javasocket InputStream? DataInputStream BufferedInputStream

------解决方案--------------------
DataInputStream
只是起到包装的目的,提供更多的方法功能,让你从socket中更加方便的读取流的数据。
------解决方案--------------------
不用转也可以写文件的,只是我们有时候为了高效,会封装一层缓冲流。缓冲流比字节流效率高很多的
------解决方案--------------------
如果是文件的话,建议用BufferedReader替换DataInputStream
------解决方案--------------------
主要是进行了封装,这样可以更好的利用。