Java IO: 字节和字符数组

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

通过InputStream或者Reader读取数组

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

这是一个简单的示例:

01 byte[] bytes = new byte[1024]; 
02 
03//write data into byte array... 
04 
05 InputStream input = new ByteArrayInputStream(bytes); 
06 
07//read first byte
08 
09 int data = input.read();
10 
11 while(data != -1) {
12 
13     //do something with data
14 
15     //read next byte     
16 
17     data = input.read();
18 
19}

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

通过InputStream或者Reader写入数组

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

这是一个简单的示例:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值