java IO流(网络图片转成字节流、保存到本地;文本内容输入输出)通用工具类

java IO流(网络图片转成字节流、保存到本地;文本内容输入输出)通用工具类

一、网络图片转成字节流和保存到本地工具类

/**
 * 根据地址获得数据的字节流
 * @param strUrl 网络连接地址
 * @return
 */
public static byte[] getImgerFormNetByUrl(String strUrl){
    HttpURLConnection conn = null;
    try {
        URL url = new URL(strUrl);
        conn = (HttpURLConnection) url.openConnection();
        //conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); //权限限制时可用此方法
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(5*1000);
        InputStream inputStream = conn.getInputStream();
        byte[] btImg = readInputStream(inputStream);
        return  btImg;
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        conn.disconnect();
    }
    return null;
}
/**
 * 从输入流中获取数据
 * @param inputStream 输入流
 * @return
 * @throws IOException
 */
public static byte[] readInputStream(InputStream inputStream) throws IOException {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];

    //输出文件流
    OutputStream os = new FileOutputStream("E:\\imgggg\\test.jpg");

    int len = 0;
    //写入
    while ((len = inputStream.read(buffer)) != -1){
        os.write(buffer,0,len);
    }
    //
    while ((len = inputStream.read(buffer)) != -1){
        outputStream.write(buffer,0,len);
    }
    os.close();
    inputStream.close();
    return outputStream.toByteArray();
}

main方法

public static void main(String[] args) {
    String url = "http://pic9.photophoto.cn/20081128/0033033999061521_b.jpg";
    getImgerFormNetByUrl(url);
}

二、文本内容输入输出工具类

/**
 * 创建文件 并写入内容
 */
public static void opFile(){
    String sourceString = "测试测试测试";
    byte[] bytes = sourceString.getBytes();
    if(bytes != null){
        try {
            File file = new File("E:\\Test\\test.txt");
            if (!file.exists()){
                File files = new File(file.getParent());
                files.mkdirs();
                file.createNewFile();
            }
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            fileOutputStream.write(bytes);
            fileOutputStream.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
/**
 * 以字节为单位读取文件内容,一次读一个字节
 */
public static void ipFile(){
    File file = new File("E:\\Test\\test.txt");
    InputStream inputStream = null;
    try {
        System.out.println("以字节为单位读取文件内容,一次读一个字节:");
        //一次读一个字节
        inputStream = new FileInputStream(file);
        int tembyte;
        while ((tembyte = inputStream.read()) != -1){
            System.out.println(tembyte);
        }

    }catch (Exception e){
        e.printStackTrace();
    }finally {
        if (inputStream != null){
            try {
                inputStream.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}
/**
 * 字符形式 读取文件 一行一行读取
 */
public static void inbufFile(){
    try {
       Reader reader = new FileReader("E:\\Test\\test.txt");
       BufferedReader bufferedReader = new BufferedReader(reader);

       String line = bufferedReader.readLine();
       StringBuffer buffer = new StringBuffer();
       while (line != null){
            buffer.append(line+"\r\n");//追加到对象尾部
            line = bufferedReader.readLine();
       }
       System.out.println(buffer.toString());
       bufferedReader.close();
       reader.close();
    }catch (IOException e){
        e.printStackTrace();
    }
}

以上工具类可直接使用,错误之处请指出。转载指明出处-------陌

猜你喜欢

转载自blog.csdn.net/qq_29473881/article/details/81392469