博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础才是重中之重~stream和byte[]的概念与转化
阅读量:5846 次
发布时间:2019-06-18

本文共 1009 字,大约阅读时间需要 3 分钟。

多看几篇

之所以写这篇文章完全是因为最近在研究FastDFS这个分布式的文件存储系统,当然这不是我第一次研究它了,就像我们去看一本书,我们不会只看一篇,而是一次次,一篇篇,每看一次会有新的收获,而研究技术,框架也是一样,每研究一次,同样会有不同层次的收获,这次主要把fastDFS的集群就配置了一下,客户端的多tracker,并在程序执行过程中,自己也分析了一下它的集群原理。

原理

事实上,和mongodb,cat等集群原理相似,fastDFS也是有个路由服务器(它被称为trackers),首先客户端根据自己的配置,与trackers进行通讯拿到有效的文件服务器地址(被称为storages),然后客户端再真正的与它进行数据上的通讯,如上传文件,下载文件里,因为fastDFS实际上把文件存储到了storages服务器上。

思维导图

基础概念

Stream:流,一般指文件流,内存流,可读的流和可写的流等,是一种数据转换的格式,流在计算机里可以表示为流输入或输出的一个连续的字节序列,它在使用完后,需要把资源释放。

Byte[]:字节数组,字节是通过网络传输信息的单位。在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。当一个字符通过网络从一端发到别一端时,会将它转换成字节数组,需要再发送。

文件上传时的Stream和byte[],有地我们需要进行转换,这里总结了两个方法

public byte[] StreamToBytes(Stream stream){    byte[] bytes = new byte[stream.Length];    stream.Read(bytes, 0, bytes.Length);    stream.Seek(0, SeekOrigin.Begin);    return bytes;}  public Stream BytesToStream(byte[] bytes){    Stream stream = new MemoryStream(bytes);    return stream;}

这种代码其实不难理解,但其中的原理值得我们去回味,因为毕竟,流和字节数据在网络传输中是并不可少的,也是计算机底层所认识的!

 

转载于:https://www.cnblogs.com/lori/p/5465623.html

你可能感兴趣的文章
《JavaScript核心概念及实践》——2.2 变量
查看>>
关于java 1.8的Lambda表达式详解
查看>>
各个网站的CSS清除代码
查看>>
TableView的集合
查看>>
软RAID管理命令mdadm详解
查看>>
控制器 控制器view cell的关系
查看>>
Eclipse RCP 玩转 Spring
查看>>
我的友情链接
查看>>
Nginx的健康检查机制
查看>>
Nginx介绍及企业web服务软件选择
查看>>
计算机书籍备忘
查看>>
esxi虚拟机中系统克隆及迁移的方法
查看>>
Linux必学的62条命令 (4)
查看>>
App_Offline.htm 功能
查看>>
java之旅
查看>>
解决linux虚拟机不能上网的问题
查看>>
恢复Reflector反编译后资源文件的办法
查看>>
HandlerExceptionResolver异常解析器家族揭秘
查看>>
Red Hat Linux4.0下主DNS服务器的搭建
查看>>
https/443安装
查看>>