<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-23  評論-0  文章-5  trackbacks-0
    String   str   =   "";//add   your   string   content

    InputStream   inputStream   =   new   ByteArrayInputStream(str.getBytes());


     1 package org.kodejava.example.io;
    2
    3  import java.io.ByteArrayInputStream;
    4  import java.io.InputStream;
    5
    6  public class StringToStream {
    7 public static void main(String[] args) {
    8 String text = "Converting String to InputStream Example";
    9
    10 /*
    11 * Convert String to InputString using ByteArrayInputStream class.
    12 * This class constructor takes the string byte array which can be
    13 * done by calling the getBytes() method.
    14 */
    15 try {
    16 InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));
    17 } catch (UnsupportedEncodingException e) {
    18 e.printStackTrace();
    19 }
    20 }
    21 }
    22  

     





    1、字符串轉inputStream

     

    Java代碼  
    1. String string;  
    2. //......  
    3. InputStream is = new ByteArrayInputStream(string.getBytes());  
     

    2、InputStream轉字符串

     

    Java代碼  
    1. ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    2. int i;  
    3. while ((i = is.read()) != -1) {  
    4.     baos.write(i);  
    5. }  
    6. String str = baos.toString();  
    7. System.out.println(str);  
     

    3、String寫入OutputStream

     

    Java代碼  
    1. OutputStream os = System.out;  
    2. os.write(string.getBytes());  
     

    4、OutputStream寫入String

     

    這聽起來有點荒謬,OutputStream本來就是輸出源,還寫入String?

    不過最近項目里確實遇到了個類似的問題,比如 SOAPMessage.writeTo(OutputStream os) 這個方法,是將SOAPMessage的內容寫到一個輸出流中,而我想得到這個流的內容,總不能把他先寫進文件再去讀這個文件吧,研究了好半天,終于想起可以如下這般:

     

    Java代碼  
    1. ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    2. //向OutPutStream中寫入,如 message.writeTo(baos);  
    3. String str = baos.toString();  


    將InputStream/OutputStream轉換成string

     

    這里需要用到一個特殊的類ByteArrayOutputStream,利用他,我們可以將輸出流在內存中直接轉換成String類型。

    具體代碼如下:

     

    首先從輸入流中將數據讀出來寫入ByteArrayOutputStream,然后再將其轉換成String.

     

    Java代碼  
    1. InputStream in = urlconn.getInputStream();//獲取輸入流  
    2.   
    3. ByteArrayOutputStream bos = new ByteArrayOutputStream();  
    4.   
    5. //讀取緩存  
    6. byte[] buffer = new byte[2048];  
    7. int length = 0;  
    8. while((length = in.read(buffer)) != -1) {  
    9.     bos.write(buffer, 0, length);//寫入輸出流  
    10. }  
    11. in.close();//讀取完畢,關閉輸入流  
    12.   
    13. // 根據輸出流創建字符串對象  
    14. new String(bos.toByteArray(), "UTF-8");  
    15. //or  
    16. //bos.toString("UTF-8");  

     

    根據同樣的原理,我們可以將outputstream直接轉換成String對象。



    指定一下字符集
    byte[] b = str.getBytes("utf-8");
    String s = new String(b,"utf-8");



    OUTPUTSTREAM中方法WRITE用法

     void write(byte[] b) 
              將 b.length 個字節從指定的 byte 數組寫入此輸出流。 
     void write(byte[] b, int off, int len) 
              將指定 byte 數組中從偏移量 off 開始的 len 個字節寫入此輸出流。 
    abstract  void write(int b) 
              將指定的字節寫入此輸出流。 
    轉載地址:http://blog.csdn.net/soundtravel/article/details/6927006
    posted on 2013-07-11 16:18 ForMeBlog 閱讀(354) 評論(0)  編輯  收藏 所屬分類: JAVA基礎類

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产大片免费网站不卡美女| 精品国产呦系列在线观看免费| 一区二区三区四区免费视频 | 日韩免费视频网站| 亚洲国产激情在线一区| 亚洲黄色在线电影| 国产精品亚洲а∨无码播放不卡| 欧美男同gv免费网站观看| 亚洲一级黄色大片| a毛片久久免费观看| 亚洲三区在线观看无套内射| 亚洲日韩av无码中文| 四虎国产精品免费久久| 久久亚洲伊人中字综合精品| 好久久免费视频高清| 又黄又爽无遮挡免费视频| 亚洲国产精品综合久久网各| 性做久久久久久免费观看| 亚洲人成色在线观看| 亚洲福利中文字幕在线网址| 国产免费一区二区三区免费视频| 亚洲av日韩av不卡在线观看| 四虎成年永久免费网站 | 亚洲国产免费综合| 2022年亚洲午夜一区二区福利| 亚洲午夜免费视频| 久久亚洲国产最新网站| 99视频在线看观免费| 人人狠狠综合久久亚洲婷婷| 国产精品亚洲色婷婷99久久精品| 亚洲免费在线观看| 91老湿机福利免费体验| 亚洲s色大片在线观看| 免费精品国偷自产在线在线 | 国产在线观看xxxx免费| 免费一级毛片不卡在线播放| 国产激情久久久久影院老熟女免费 | www亚洲精品久久久乳| 全免费a级毛片免费**视频| 一级毛片免费毛片毛片| 亚洲国产午夜中文字幕精品黄网站 |