Java IO流學習總結六:ByteArrayInputStream、ByteArrayOutputStream

来源:http://www.cnblogs.com/zhaoyanjun/archive/2017/02/13/6394443.html
-Advertisement-
Play Games

Java IO流學習總結六:ByteArrayInputStream、ByteArrayOutputStream 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/54946762 本文出自 "【趙彥軍的博客】" 類的繼承關係 可以將字 ...


Java IO流學習總結六:ByteArrayInputStream、ByteArrayOutputStream

轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/54946762
本文出自【趙彥軍的博客】

類的繼承關係

InputStream
|__ ByteArrayInputStream
                                   
                         
OutputStream
|__ ByteArrayOutputStream
                                  

ByteArrayInputStream 可以將位元組數組轉化為輸入流 。
ByteArrayOutputStream可以捕獲記憶體緩衝區的數據,轉換成位元組數組。

ByteArrayInputStream

  • 構造函數
public ByteArrayInputStream(byte buf[])

public ByteArrayInputStream(byte buf[], int offset, int length)

  • 一般方法
void  close() // 關閉該流並釋放與之關聯的所有資源。

String  getEncoding() //返回此流使用的字元編碼的名稱。

int  read()  //讀取單個字元。

int  read(char[] cbuf, int offset, int length) //將字元讀入數組中的某一部分。

boolean  ready() //判斷此流是否已經準備好用於讀取。

ByteArrayOutputStream

  • 構造函數
public ByteArrayOutputStream()

public ByteArrayOutputStream(int size)
  • 一般方法
void write(int b)

void write(byte b[], int off, int len)

void writeTo(OutputStream out)

byte toByteArray()[]

void close()

練習1

位元組流ByteArrayInputStream的讀寫過程測試

package com.app;
import java.io.ByteArrayInputStream;
import java.io.IOException;

public class A7 {
    
    public static void main(String[] args) {
        
        String mes = "hello,world" ;
        byte[] b = mes.getBytes() ;
        
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( b ) ;
        int result = -1  ;

        while( ( result = byteArrayInputStream.read() ) != -1){
            System.out.println( (char) result );
        }
        
        try {
            byteArrayInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

效果:
這裡寫圖片描述

練習2

ByteArrayOutputStream讀出的位元組流用FileOutputStream寫入文件

package com.app;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class A6 {

    public static void main(String[] args) {

        String mes = "你好,world" ;
        byte[] b = mes.getBytes() ;

        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream() ;
        try {
            byteArrayOutputStream.write( b );

            FileOutputStream fileOutputStream = new FileOutputStream( new File( "F:/123.txt" ) ) ;

            byteArrayOutputStream.writeTo( fileOutputStream ) ;

            fileOutputStream.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                byteArrayOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}

效果:
這裡寫圖片描述

個人微信號:zhaoyanjun125 , 歡迎關註





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.概念理解 1.1 IoC,(Inverse of Control)控制反轉,其包含兩個內容:其一是控制,其二是反轉。在程式中,被調用類的選擇控制權從調用它的類中移除,轉交給第三方裁決(反轉)。這個第三方指的就是Autofac,Spring,Unity等的容器。IoC另解,依賴註入(Depende ...
  • 今天我們來講一下迭代器模式。 什麼叫迭代器模式呢?迭代器模式:提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露該對象的內部表示。 什麼時候考慮用迭代器模式呢?當你需要訪問一個聚焦對象,而且不管這些對象是什麼都需要遍歷的時候,你就應該考慮用迭代器模式。 好,下麵我們看一下迭代器的基本代碼: 客 ...
  • Android 其實無法做多絕對的不被後臺kill掉,我們只能儘量使用一些操作提升不被kill的機會。 一、onStartCommand方法,返回START_STICKY START_STICKY 在運行onStartCommand後service進程被kill後,那將保留在開始狀態,但是不保留那些 ...
  • 修改背光改變區間 kernel\drivers\video\backlight\pwm_bl.c ...
  • 一點公益app開發,聯繫微電188-2624-7572. 站在互聯網的風口,任何商業模式拼的都是速度。一點公益項目平臺、一點公益APP受追捧是有原因的:一點公益平臺倡導的“互聯網+公益”模式,商家直接讓利給公益平臺,平臺通過大數據計算分析,進行財富的二次分配。這種讓利幅度之大,持續之久,是傳統商業模 ...
  • Java IO流學習總結七:Commons IO 2.5 FileUtils 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/54972773 本文出自 "【趙彥軍的博客】" 在上面的幾篇文章中,介紹了IO的常規用法,今天介紹 框架的 ...
  • 刪除小電池圖標及百分比 a、SystemUI/.../statusbar/policy/BatteryController.java mBatteryPercentageView.setVisibility(View.GONE);———————右上角百分比 c、SystemUI/.../status ...
  • 近期公司開發工具要從eclipse轉向Androidstudio,安裝好as後當然迫不及待地要將快捷鍵修改為eclipse中的快捷鍵啦,下麵是個人的一些小的總結。 1.首先當然要打開快捷鍵的設置界面啦:File>Settings>Keymap 界面如下 2.在圖中的下拉菜單中,即可選擇將快捷鍵設置為 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...