发表于: 2016-10-26 22:31:51

0 2485


今天完成的事情:实现最简单的android端上传图片到后端

遇到的问题1.

android端如何上传图片给服务器,服务器如何接收并存储

今天在询问公司里的android端大神学习到的一种解决办法

android端将图片通过BASE64转码生成string字符串,后端使用BASE64将这个string解码为byte[],

最后将这个byte[]数组转换为file类之后写入指定目录完成上传

收获1。

关于BASE64:Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一

遇到的问题2.

什么是阻塞

阻塞:

https://www.zhihu.com/question/19732473

知乎这个问题的答案很有意思


阻塞就是我们主动执行一件事情的时候一直等待事情的返回结果,相当于这段时间内一直只做了这一件事情,不返回结果就一直等着。

相当于线程一直被占用?


那么read和write方法在执行的时候都将阻塞的意思是指执行read或者write的线程除非获取到了函数的返回结果,否则一直都在等待,


如果available()方法返回值大于0,意味着可以读取到内容,线程没有被占用,所以read()方法就不会阻塞,


int available ()

返回在不阻塞的情况下可获取的字节数(回忆一下,阻塞意味着当前线程将失去它对资源的占用)


这里需要再了解下多线程和cpu怎么处理任务


以下来自百度百科

阻塞调看返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,CPU不会给线程分配时间片,即线程暂停运行)。

函数只有在得到结果之后才会返回。

收获2

在java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称作输出流。

抽象类InputStream和OutputStream构成了输入/输出(i/o)层次结构的基础


1.1流

1.1.1读写字节

InputStream 

abstract int read()

这个方法将读入一个字节,并返回读入的字节,或者在遇到输入源结尾时返回-1。


OutputStream

abstract void write(int b)

这个方法将可以向某个输出位置写入一个字节


read和write方法在执行时都将阻塞





返回列表 返回列表
评论

    分享到