java流中的相互转换

总结:无论从哪里转,都可通过read先转换为字节数组或者字符数组,然后再使用write写入需要转换后的对象中,这是一个通用的方式。字符流与字节流之间的相互转换也是如此,但会用到下面的几个函数。

byte[] 转 string

String str = new String(byte[]);

string 转 byte[]

byte[] buffer=new byte[length];

buffer = str.getBytes();

string 转 char[]

char[] ch=new char[length];

ch=str.toArrayString();

输入流都有关于read的函数,而输出流都有关于write的函数。

字符流和字节流的read函数与write函数分别都是以字节数组和字符数组作为参数或返回值,通过这两个数组就能实现任意流中的转换。

哦,最后我还记得有一个函数。

in.transferTo(out)    //直接将输入流in转换到输出流out。

下面是一个关于使用此函数下载图片的例子:

package com.wenba1314.url;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class PictureDownload {
    public static void main(String[] args) throws IOException {
        String address="http://mm.chinasareview.com/wp-content/uploads/2017a/07/21/01.jpg";
        downloadImg(address);
    }
    public static void downloadImg(String address) throws IOException {
        URL url=new URL(address);
        HttpURLConnection conn=(HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);
        conn.setReadTimeout(5000);
        conn.setDoInput(true);
        conn.connect();
        InputStream in=conn.getInputStream();
        FileOutputStream out=new FileOutputStream("C:\\Users\\pc\\Desktop\\qwe.jpg");
        in.transferTo(out);
        in.close();
        out.close();
        System.out.println("图片下载成功!");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41294444/article/details/81771627