字节转换工具

引言:
我们都知道网络上以流的形式传输文件,当我们在安卓中用HttpUrlconnection发送网络请求时会获得输入流,你所需要的数据就携带在输入流中,有时候经常会用到,故我们可以写个流转化为字符串的工具。

代码Demo案例:

1 随便写了个网络请求局部代码如下:

  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);
                    InputStream inputStream = connection.getInputStream();
                    //  调用流转换为字符串工具
                  String json = StreamUtil.streamToString(inputStream);
                    Log.i(TAG, "run: "+json);

2 工具类:

package com.example.administrator.mobilesafe;

        import java.io.ByteArrayOutputStream;
        import java.io.IOException;
        import java.io.InputStream;

/**
 * Created by Administrator on 2017/8/29.
 */
public class StreamUtil {
    public static String streamToString(InputStream inputStream) {
        // 1 思路在读取过程中将读取的内容存储到缓存中 然后一次转化为字符串返回
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        // 2 流操作读到没有为止(循环)
        byte[] buffer = new byte[1024];
        // 3 记录读取内容的临时变量
        int temp = -1;
        try {
            while ((temp = inputStream.read(buffer))!= -1) {
                /* read(byte[] b) 这个方法是先规定一个数组长度,
                将这个流中的字节缓冲到数组b中,返回的这个数组中的字节个数,
              这个缓冲区没有满的话,则返回真实的字节个数,到未尾时都返回-1  */

                // 输入流对象中有网络数据 ,把数据读入到buffer中边读边写
                byteArrayOutputStream.write(buffer, 0, temp);
            }
            return byteArrayOutputStream.toString();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭流
                byteArrayOutputStream.close();
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

运行log贴图如下:

字节转换工具_第1张图片
image.png

注: 如果使用一些网络请求框架就不必用使用本工具类了,那些框架一般都封装好了,可以调用函数直接转化。例如OkHttp,喜欢的可以去github看看。地址:https://github.com/square.okhttp。
当然框架一般也是在这基础上封装的。

小结 : 这几天看视屏学习黑马一个项目时想总结一下这些小知识点,于是乎写了这篇,方便自己也有利于大家嘿嘿!

你可能感兴趣的:(字节转换工具)