1. 程式人生 > >Android學習筆記-InputStream與String,Byte之間的相互轉換

Android學習筆記-InputStream與String,Byte之間的相互轉換

/** * Created by yt on 2017/12/15. * InputStream工具類 */ public class InputStreamUtils { final static int BUFFER_SIZE = 4096; /** * 將InputStream轉換成String * @param in InputStream * @return String * @throws Exception * */ public static String InputStreamTOString(InputStream in) throws
Exception{ ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] data = new byte[BUFFER_SIZE]; int count = -1; while((count = in.read(data,0,BUFFER_SIZE)) != -1) outStream.write(data, 0, count); data = null; //new String(outStream.toByteArray());
return new String(outStream.toByteArray(),"UTF-8"); } public static String readStreamToString(InputStream inputStream) throws IOException { //建立位元組陣列輸出流 ,用來輸出讀取到的內容 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); //建立讀取快取,大小為1024 byte[] buffer = new byte[1024]; //每次讀取長度
int len = 0; //開始讀取輸入流中的檔案 while( (len = inputStream.read(buffer) ) != -1){ //當等於-1說明沒有資料可以讀取了 byteArrayOutputStream.write(buffer,0,len); // 把讀取的內容寫入到輸出流中 } //把讀取到的位元組陣列轉換為字串 String result = new String(byteArrayOutputStream.toByteArray()); //關閉輸入流和輸出流 inputStream.close(); byteArrayOutputStream.close(); //返回字串結果 return result; } /** * 將InputStream轉換成某種字元編碼的String * @param in * @param encoding * @return * @throws Exception */ public static String InputStreamTOString(InputStream in,String encoding) throws Exception{ ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] data = new byte[BUFFER_SIZE]; int count = -1; while((count = in.read(data,0,BUFFER_SIZE)) != -1) outStream.write(data, 0, count); data = null; return new String(outStream.toByteArray(),"UTF-8"); } /** * 將String轉換成InputStream * @param in * @return * @throws Exception */ public static InputStream StringTOInputStream(String in) throws Exception{ ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes("UTF-8")); return is; } /** * 將InputStream轉換成byte陣列 * @param in InputStream * @return byte[] * @throws IOException */ public static byte[] InputStreamTOByte(InputStream in) throws IOException{ ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] data = new byte[BUFFER_SIZE]; int count = -1; while((count = in.read(data,0,BUFFER_SIZE)) != -1) outStream.write(data, 0, count); data = null; return outStream.toByteArray(); } /** * 將byte陣列轉換成InputStream * @param in * @return * @throws Exception */ public static InputStream byteTOInputStream(byte[] in) throws Exception{ ByteArrayInputStream is = new ByteArrayInputStream(in); return is; } /** * 將byte陣列轉換成String * @param in * @return * @throws Exception */ public static String byteTOString(byte[] in) throws Exception{ InputStream is = byteTOInputStream(in); return InputStreamTOString(is); } }

相關推薦

Android學習筆記-InputStreamString,Byte之間相互轉換

/** * Created by yt on 2017/12/15. * InputStream工具類 */ public class InputStreamUtils { final static int BUFFER_SIZE = 4096; /** * 將InputStream

Android學習筆記——HandlerThreadIntentService

pre https 發送數據 不容易 todo -s 退出 oop public 參考: https://blog.csdn.net/javazejian/article/details/52426353     https://www.jianshu.com/p

DataSet String 型別之間轉換

        private string DataSetToString(DataSet ds)        {            return ds.GetXml();        }         private DataSet StringToDat

Android實現橫屏豎屏之間轉換

public void switchOrientation(View v){ int orientation = getResources().getConfiguration().orientation; if (orientation == Config

Android學習筆記(一)startActivityForResult經過強轉換變為可用

首先感謝吳浩傑學長! startActivityForResult的坑 startActivityForResult是Context的一個例項方法。 因此它也隨著Context被Activity給繼承,

js時間戳日期格式之間相互轉換

時間日期 TP var gets nbsp unix時間 其他 value nds 時間戳:是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。Unix時間戳不僅被使用在Unix系統、類Unix系統中,也在許多其他操作系統中被

C++中int型別String型別的相互轉換

最近經常用到兩種型別的相互轉換,從網上找了一些,彙總一下,以備不時之需 int型別轉換為String型別 方法一:利用sprintf #include <iostream> #include <string> int main() { int n =

blobstring型別的相互轉換

<pre name="code" class="java"></pre><pre name="code" class="java">package com.coci.test2; import java.io.OutputStream;

C#中char型別string型別的相互轉換

1:將string型別轉換為char[]陣列形式: string stringtochar="1234"; char [ ] n=stringtochar.TOCharArray(); console.writeLIne("字元1:{0},字元2:{1},字元3:{2},n

Xml字串C#物件之間相互轉換

我們常常需要讀取xml檔案,把裡面的資訊轉化為我們自定義的型別,或則吧自定義型別轉化為Xml字串。在這裡介紹一個比較簡單的物件轉化方法。在我自己的Framwork裡面也多次用到。裡面涉及到節點、屬性、集合。 示例一 該xml檔案涉及到屬性、節點集合不涉及個節點: <?x

Android學習筆記之淺談@id@+id之間的區別

<Button android:id="@+id/button3" //定義了一個Button取名為button3 android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_cen

Android學習筆記——Activity之間的跳轉(五)

1:使用Intent(意圖)的方式實現Activity跳轉 (1)MainActivity.java: public class MainActivity extends Activity { private Button startOther; @Override pro

Android學習筆記——Android系統整體架構原始碼目錄

首先要感謝**@劉望舒**大神的部落格,讓我們這些渣渣有途徑更快速地接觸到Android系統層的內容。 本篇部落格主要介紹了Android系統的整體架構及原始碼的目錄結構。 Android系統架構 Android的系統架構可以分為五層,分別是 應用層、應用框架

android學習筆記之客戶端服務端保持session登入狀態

剛進公司不久,也沒有具體專案任務,只有一個混合開發模式,使用AppCan開發的專案。 雖然混合開發很便捷、很高效,使用html和js就可以完成。 但我依然對android原生開發有著極高的熱情,尤其是在體驗了Android 5.0版本之後,更是對原生體驗著迷。 所以,我利用

Android學習筆記(四)--RecyclerView擴充套件下拉重新整理左滑刪除

今天在使用QQ的時候就想到製作一個訊息列表的類似效果,可以實現下拉重新整理和左滑刪除效果,於是就抽空試了試。先上效果圖。 這是正在重新整理的時候。然後就會增添一個item(那個重新整理的圈是會轉的然後還可以變顏色我不會截動圖)。見下圖。 Recycl

Android學習筆記(三)--ListViewRecyclerView

在學習了幾天Android之後,打算寫個簡單的app來試試手,於是就想寫一個“便籤”。在寫列表的時候自然的想到了用一個ListView然後配置一個adpter來顯示資訊,但是呢,在逛論壇的時候發現現在使用RecyclerView的比較多,於是就看了幾個demo,

Android學習筆記---android資料儲存訪問

資料儲存與訪問 --------------------------------------- 一個在手機和sd卡上儲存檔案的例子 1.a.檔名稱:lable   b.一個text框   c.檔案內容:label   d.一個text框   e.儲存:button ---------------------

android學習筆記(一)資料儲存訪問

Android為資料儲存提供了以下幾種方式: 1.檔案儲存方式 2.SharedPreference儲存方式 3.Content Provider 內容提供者 4.網路儲存方式 (一).檔案操作方式(其本質即為輸入輸出流的操作) 實現登入介面賬號、密碼的儲存功能。

Pro Android學習筆記(一三七):Home Screen Widgets(3):配置Activity

map onclick widgets info xtra ces extends height appwidget 文章轉載僅僅能用於非商業性質,且不能帶有虛擬貨幣、積分、註冊等附加條件。轉載須註明出處http://blog.csdn.net/flowingfly

Android學習筆記-TextView(文本框)(二)

com ddc tel spanned extra pac 全部 con 平時 文章參考自:http://www.runoob.com/w3cnote/android-tutorial-textview.html 2.4 使用autoLink屬性識別鏈接類型 當文字中出