91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-12-10 13:11:36 來源:億速云 閱讀:165 作者:柒染 欄目:開發技術

如何使用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()的意義,原因:底層空實現(源碼如下)

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仪陇县| 彰化市| 临潭县| 缙云县| 阿坝县| 南岸区| 盈江县| 恩平市| 白山市| 巴楚县| 河源市| 沈丘县| 墨玉县| 会同县| 门头沟区| 贵阳市| 潞城市| 咸宁市| 探索| 河津市| 凭祥市| 克拉玛依市| 泰顺县| 盐边县| 定日县| 北宁市| 隆回县| 军事| 岳普湖县| 津南区| 宁城县| 资讯| 桦南县| 繁峙县| 沁源县| 陵水| 全州县| 绍兴县| 正定县| 武汉市| 永清县|