千家信息网

如何使用ByteArrayOutputStream写入字符串方式

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,如何使用ByteArrayOutputStream写入字符串方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用Byt
千家信息网最后更新 2025年11月07日如何使用ByteArrayOutputStream写入字符串方式

如何使用ByteArrayOutputStream写入字符串方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

使用ByteArrayOutputStream写入字符串

package com.gk;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;/** * 使用ByteArrayOutputStream写入字符串 * @author GuoKe *说明:1,不关联源        2.可以不释放资源       3.使用toByteArray()获取数据 */public class IOTest8 {        public static void main(String[] args) {                                byte[] dest = null;                                ByteArrayOutputStream bs = null;                                try {                        bs = new ByteArrayOutputStream();                                                String str = "hello";                        byte[] datas = str.getBytes();                        bs.write(datas,0,datas.length);                        bs.flush();                        dest = bs.toByteArray();                        System.out.println(dest.length + ":" + new String(dest,0,dest.length/*bs.size()*/));                }catch(FileNotFoundException e){                        e.printStackTrace();                }catch(IOException e){                        e.printStackTrace();                }finally {                        try {                                if (bs != null) {//alt+shift+z                                        bs.close();                                }                         } catch (Exception e) {                                e.printStackTrace();                        }                }        }}

文件与二进制数据互转-ByteArrayOutputStream

// 获取二进制数据public static byte[] getFileBinary(String filePath) {    FileInputStream fis = null;    BufferedInputStream bis = null;    ByteArrayOutputStream baos = null;    try {        fis = new FileInputStream(filePath);        bis = new BufferedInputStream(fis);        baos = new ByteArrayOutputStream();        int c = bis.read();        while (c != -1) {            // 数据存储到ByteArrayOutputStream中            baos.write(c);            c = bis.read();        }        fis.close();        bis.close();        // 转换成二进制        return baos.toByteArray();    } catch (Exception e) {        e.printStackTrace();    } finally {        // 没有关闭ByteArrayOutputStream流的意义,空实现        try {            if (fis != null ) {                fis.close();            }        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (bis != null ) {                    bis.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }    return null;} // 二进制数据转成文件public static void binaryToFile(byte[] bytes, String filePath) {    FileOutputStream fos = null;    BufferedOutputStream bos = null;    try {        fos = new FileOutputStream(filePath);        bos = new BufferedOutputStream(fos);        bos.write(bytes);    } catch (Exception e) {        e.printStackTrace();    } finally {        try {            if (fos != null ) {                fos.close();            }        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (bos != null ) {                    bos.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }}

ByteArrayOutputStream没有执行close()的意义,原因:底层空实现(源码如下)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0