<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 閱讀(353) 評論(0)  編輯  收藏 所屬分類: JAVA基礎類

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


    網站導航:
     
    主站蜘蛛池模板: 国产成人精品免费直播| www视频在线观看免费| 亚洲成人国产精品| 色婷婷六月亚洲综合香蕉| 毛片免费vip会员在线看| 亚洲一区二区三区播放在线| 成视频年人黄网站免费视频| 亚洲最大成人网色香蕉| 日韩在线免费视频| 亚洲A∨精品一区二区三区下载 | 一级毛片在线免费视频| 亚洲一级Av无码毛片久久精品| 免费在线观看亚洲| 亚洲成A人片在线观看无码3D| 亚洲av午夜精品无码专区| 午夜宅男在线永久免费观看网| 亚洲精品二三区伊人久久| 在线免费观看一级片| 精品成人一区二区三区免费视频| 亚洲国产人成中文幕一级二级| 国产精品免费久久久久久久久| 久久伊人久久亚洲综合| 日本免费一区二区在线观看 | 全免费a级毛片免费看| 亚洲a在线视频视频| 久久久久国产精品免费网站| 亚洲人成在线免费观看| 在线观看免费亚洲| 久久毛片免费看一区二区三区| 久久久亚洲精品无码| 猫咪社区免费资源在线观看 | 精选影视免费在线 | 亚洲国产人成网站在线电影动漫| 在线永久看片免费的视频| 亚洲s码欧洲m码吹潮| 亚洲色无码专区在线观看| 99re热免费精品视频观看| 成年免费a级毛片| 亚洲毛片基地日韩毛片基地| 日日操夜夜操免费视频| 国产成人免费AV在线播放|