美文网首页
6. Java IO: Byte & Char Arrays

6. Java IO: Byte & Char Arrays

作者: kopshome | 来源:发表于2017-11-15 17:07 被阅读0次

    想要查看此教程的目录请点击: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来做这件事,你可以完成的。

    相关文章

      网友评论

          本文标题:6. Java IO: Byte & Char Arrays

          本文链接:https://www.haomeiwen.com/subject/gxrhvxtx.html