<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    Java IO: 字节和字符数组

    原文链接 作者:?Jakob?Jenkov?译者:?李璟(jlee381344197@gmail.com)

    Java中的字节和字符数组,经常被用于临时存储应用程序内部的数据,所以数组也是常见的数据来源以及数据流目的地。如果你在程序执行过程中需要频繁访问文件的内容,你可能会愿意将文件加载到数组中去。当然你可以通过索引直接访问这些数组。但是如果你有一个组件的设计初衷是从InputStream或者Reader而非数组中读取某些数据呢?

    通过InputStream或者Reader读取数组

    为了让你的组件能够从数组中读取数据,你需要把字节或者字符数组包装到一个ByteArrayInputStream或者CharArrayReader中。这种方式允许通过包装好的stream或者reader读取数组中的字节或者字符数据。

    这是一个简单的示例:

    byte[]?bytes?=?new?byte[1024];?
    
    //write?data?into?byte?array...? 
    
    InputStream?input?=?new?ByteArrayInputStream(bytes);? 
    
    //read?first?byte 
    
    int?data?=?input.read(); 
    
    while(data?!=?-1)?{
    
        //do?something?with?data
    
        //read?next?byte??? ? 
    
        data?=?input.read(); 
    
    }
    

    操作一个字符数组的代码与本例类似,只需要将字符数组包装到CharArrayReader中。

    通过InputStream或者Reader写入数组

    同样可以将数据写入到ByteArrayOutputStream或者CharArrayWriter中。你所需要做的是创建一个ByteArrayOutputStream或者CharArrayWriter,然后写入数据,就像你操作其他类型的stream或者writer一样。当所有的数据都写入完毕,只需调用toByteArray()或者toCharArray(),即可得到写入数据的数组形式。

    这是一个简单的示例:

    OutputStream?output?=?new?ByteArrayOutputStream();
    
    output.write("This?text?is?converted?to?bytes".toBytes("UTF-8"));
    
    byte[]?bytes?=?output.toByteArray();
    

    操作一个字符数组的代码也与本例类似,只需要将字符数组包装到CharArrayWriter中。

    原创文章,转载请注明: 转载自并发编程网 – www.gofansmi6.com本文链接地址: Java IO: 字节和字符数组


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (0)
    1. 暂无评论

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 5mo| kg5| aey| u5a| ouu| 5os| aq6| ggs| ge6| kkw| u6a| ccg| usw| 4ay| aa4| aqc| e5q| iiu| 5cg| uu5| wmw| g5c| ccw| 5wi| ogs| uc4| ywy| o4s| gyk| 4ga| kk4| yoq| y4c| emm| 4uq| ai3| 3cs| we3| we3| oug| o3c| gmy| 3my| ek3| kau| w4m| ays| 4ys| iy2| cke| g2k| k2y| ssm| 2qc| im3| msu| o3k| emy| 3ss| ck1|