Java文件流和网络流的原理以及流解析过程

流我们可以理解为水流,流的传输就相当于在水管里传输,本篇博客主要介绍流的原理和解析过程,学疏才浅,抛砖引玉,大佬勿喷。

文件流

假设我们收到了一个以Unicode编码的文件流,对于该文件流所表示的内容我们很好奇,那么就需要我们想办法对其进行解析。

已知它的编码方式为Unicode,16bit为一个字符,我们以byte类型数组接收,由于byte类型数组为8bit,即8bit代表一个字符,对于16bit类型的数据我们可以做以下处理:

byte[] arr;

//假设其中的一个字符为w.由于为16bit,我们可以直接使用short类型数据。

即short w = arr[i] << 8 + arr[i]

之后我们可以直接用char x = (char)w;来获取该字符的实际意义。 

我们获取到流之后,在操作系统中是如何把它识别成文件的呢?

对于操作系统有现成的对流进行处理的方法,我们在Java中经常见到。。。Stream,该类里就调用了操作系统里的方法,我们可以直接拿来使用。

网络流

Socket是建立网络连接的基础,而网络流是Socket连接之上进行数据传输的方式,在建立连接之后,使用流来进行数据的读写操作,从而实现网络通信。

Socket封装了TCP协议的通讯细节,使用它就可以与远端计算机建立TCP连接.并基于两个流(一个输入 一个输出)与远端计算机进行双向通讯 将Socket比喻为是一部手机 Socket实例化时需要传入两个参数

        参数1:服务端的地址信息

        参数2:服务端打开的服务端口

客户端通过服务端的地址找到网络上的服务器计算机,通过端口可以连接上该机器上运行的服务端应用程序.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值