想要查看此教程的目录请点击:Java IO教程目录贴地址
在一个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();
}
这个demo也同样适用于字符数组。只是利用CharArrayReader来做这件事,你可以完成的。
通过OutputStream或Writer写入到数组
同样的去写数据,可以用ByteArrayOutputStream或CharArrayWriter。你需要做的事情就是创建一个ByteArrayOutputStream或CharArrayWriter,然后向这里面写数据,就像你用其他的stream或writer一样。当所有数据写完的时候,只是简单的调用oByteArray()或toCharArray方法,所有的数据就可以以数组的形式返回。
这里有一个简单的例子:
ByteArrayOutputStream output = new ByteArrayOutputStream();
output.write("This text is converted to bytes".getBytes("UTF-8"));
byte[] bytes = output.toByteArray();
这个demo也同样适用于字符数组。只是利用CharArrayWriter来做这件事,你可以完成的。
网友评论