使用ByteArrayOutputStream写入字符串方式

目录
  • 使用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)

相关推荐

  • Java基础知识之ByteArrayOutputStream流的使用

    目录 Java ByteArrayOutputStream流的使用 一.ByteArrayOutputStream流定义 二.ByteArrayOutputStream流实例域 三.ByteArrayOutputStream流构造函数 四.ByteArrayOutputStream流方法 五.ByteArrayOutputStream流的作用 ByteArrayOutputStream 理解 ByteArrayOutputStream的用法 ByteArrayInputStream的用法 Jav

  • Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重复读取配置文件的方法

    ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据.在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去.具体用法如下: ByteArrayOutputStream:    可以捕获内存缓冲区的数据,转换成字节数组. ByteA

  • ByteArrayOutputStream简介和使用_动力节点Java学院整理

    ByteArrayOutputStream 介绍 ByteArrayOutputStream 是字节数组输出流.它继承于OutputStream. ByteArrayOutputStream 中的数据被写入一个 byte 数组.缓冲区会随着数据的不断写入而自动增长.可使用 toByteArray() 和 toString() 获取数据. OutputStream 函数列表 我们来看看ByteArrayOutputStream的父类OutputStream的函数接口. // 构造函数 Output

  • 使用ByteArrayOutputStream写入字符串方式

    目录 使用ByteArrayOutputStream写入字符串 文件与二进制数据互转-ByteArrayOutputStream 使用ByteArrayOutputStream写入字符串 package com.gk; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import jav

  • php文件操作之文件写入字符串、数组的方法分析

    本文实例讲述了php文件操作之文件写入字符串.数组的方法.分享给大家供大家参考,具体如下: 场景一:用文本文档记录一些操作日志,因为对于一些频繁的操作,操作记录的数据量势必会很大,如果用数据库来存储会给数据库带来压力. 场景二:代替输出函数打印一些数据,例如在支付的回调里面不好用echo.var_dump等直观地打印数据出来,就要用到写入文件来记录数据的方式,可以用于排除错误等. 记录当前时间,写入文件: 使用file_put_contents()函数(写入字符串) <?php $log = &qu

  • Go语言写入字符串到文件的方法

    本文实例讲述了Go语言写入字符串到文件的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package  main import "fmt" import "os" func main() {     fileName := "test.dat"     dstFile,err := os.Create(fileName)     if err!=nil{         fmt.Println(err.Error())  

  • 从pandas一个单元格的字符串中提取字符串方式

    以titanic数据集为例. 其中name列是字符串,现在想从其中提取title作为新的一列. 例如: # create new Title column df['Title'] = df['Name'].str.extract('([A-Za-z]+)\.', expand=True) 提取其中的title作为新的一列. 以上就是对从pandas的单元格中提取字符串的认识. 这篇从pandas一个单元格的字符串中提取字符串方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多

  • Java正则表达式循环匹配字符串方式

    目录 正则表达式循环匹配字符串 Java匹配正则表达式大全 我们先举个例子来看看Java匹配正则表达式 匹配表达式的特殊情况 正则表达式循环匹配字符串 public static void main(String[] args) { /** * String str = "[Part 'name=1234567']"; */ String targetStr = "where 1=1 [and user_name like '%$user_name$%'] [and comp

  • vue获取后台json字符串方式

    目录 vue获取后台json字符串 Vue字符串与Json转换 字符串与数组之间的相互转换 Json字符串转换为json对象 vue获取后台json字符串 1.在api文件下的driver.js文件下写一个获取json的函数 export const tree = () => request({ url: 'driver/tree', method: 'post', }) 2.在view文件下的driver文件下的index.vue文件里引入driver.js文件下的tree函数 import

  • java poi 读取单元格null或者空字符串方式

    目录 java poi 读取单元格null或空字符串 java poi读取excel单元格为空的数据,出现空指针异常 产生原因 问题解决 java poi 读取单元格null或空字符串 Cell cell = row.getCell(j, Row.RETURN_BLANK_AS_NULL); 需求 :策划同学填写的单元格有时为null 有时为空串 分条件处理 getcell 可以传入指定的策略 根据需求拿到结果分需处理 java poi读取excel单元格为空的数据,出现空指针异常 空指针异常:

  • mysql5.6 解析JSON字符串方式(支持复杂的嵌套格式)

    目录 mysql5.6 解析JSON字符串 支持复杂的嵌套格式 mysql5.6及以下解析json方法 先说一下问题的背景 下面是对应的代码 mysql5.6 解析JSON字符串 支持复杂的嵌套格式 废话不多说,先上代码. CREATE FUNCTION `json_parse`(`jsondata` longtext,`keyname` text) RETURNS text CHARSET utf8 BEGIN DECLARE delim VARCHAR(128); DECLARE resul

  • mysql中in条件使用字符串方式

    目录 mysql中in条件使用字符串 场景 方法 mysql查询 in条件参数为带逗号的字符串,查询结果错误 解决方案 mysql中in条件使用字符串 场景 当sql使用in作为条件时,使用一个参数满足查询条件,直接传入字符串无法满足条件. select id,name from user where id in(?) 方法 使用FIND_IN_SET(str,strlist)函数 select id,name from user where FIND_IN_SET(id,#{strlist})

  • c++中cin实现输入字符串方式

    目录 c++ cin如何输入字符串 1.cin 2.cin.get() 3.cin.getline() 4.getline() c++ cin输入 不定长输入 c++ cin如何输入字符串 1.cin cin会过滤掉不可见字符(如空格.回车.tab等). 如果不想略过空白字符,可以使用noskipws流控制. cin>>noskipws>>input[i] 2.cin.get() cin.get()可以用来接收字符 cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以

随机推荐