Java IO: 字节和字符数组

原文链接 作者:?Jakob?Jenkov?译者:?李璟(jlee381344197@gmail.www.html-guide.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中。

原创文章,转载请注明: 转载自九乐棋牌本文链接地址: Java IO: 字节和字符数组

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

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

return top