java 6字节_6.Java IO:字节和字符数组

本文是在Java IO: Byte & Char Arrays翻译而来。欢迎大家联系我,跟我一起交流。本人水平有限,如果错误欢迎指正。

字节数组和字符数组在应用内部经常用来暂时地存储数据。这些数组也是典型的数据的输入源和输出目标。如果在程序运行时,同时需要大量访问文件的内容,你可能更喜欢以数组加载文件。当然你可以通过索引直接访问数组。但是如果你设计了一个组件用于从输入流(InputStream)或阅读器(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),然后就可以执行了。

通过输出流或写入数组

也可以把数据写入字节数组输出流(ByteArrayOutputStream)或字符写入器(CharArrayWriter)。你需要做的就是建立节数组输出流或字符写入器,然后向它写入数据,只需调用toByteArray()或toCharArray()方法,然后写入的数据将以数组形式返回。

例子如下:

ByteArrayOutputStream output = new ByteArrayOutputStream();

output.write("This text is converted to bytes".getBytes("UTF-8"));

byte[] bytes = output.toByteArray();

对于字节数组的写入也是类似于上面的例子,只要将字符包装成字节写入器(CharArrayWriter),然后就可以执行了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值