Java基础笔记 – 继承InputStream自定义一个简单的字节数组输入流
本文由发表于7年前 | Java基础 | 评论数 2 |  被围观 6,516 views+
自定义一个字节数组:1、实现:2、调用

Java基础笔记 – IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流2.2.1、字节输出流的抽象类及其最关键的方法,可知,只有最后一个方法才是抽象的,原因是前面两个都调用了第三个抽象方法,这样继承这个抽象类的子类都必须提供抽象的write(int b)的实现,从而使得每个子类的实现都不一样。

所以这样我们就可以编写自己的IO流类了,只要继承InputStream类并实现其中的抽象方法:abstract void write(int b)。

而其他两个已实现的方法会自动调用这个抽象方法的实现方法。

自定义一个字节数组:
1、实现:
/**
 * 自定义一个字节数组输入流类
 * @author arthinking
 */
public class MyInputStream extends InputStream {

    //需要处理的字节数组
    protected byte[] data;
    //开始读取的位置
    protected int ptr = 0;

    public MyInputStream(byte[] data){
        this.data = data;
    }

    @Override
    public int read() throws IOException {
        if(ptr < data.length)
            return data[ptr++];
        else
            return -1;
    }
}
2、调用
public static void main(String[] args) throws IOException {
    String name = "abcdefg";
    //这里保存的是字符的ascII码
    byte[] b = name.getBytes();

    MyInputStream mis = new MyInputStream(b);
    while(true){
        int c = mis.read();
        if(c == -1){
            break;
        }
        System.out.println(c);
    }
}
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/java-based-notebook-a-custom-inputstream-inherits-a-simple-byte-array-input-stream.html
关键字: , ,
arthinking 指弹吉他 && 技术 more
分享到:
 
2011 10/22
文章评论
    2条评论
  1. hua 2014年06月04日07:54:48  #-49楼 回复 回复

    如果read时的data[ptr++]值本身就是-1呢?

给我留言

有人回复时邮件通知我
Java基础的相关文章
随机文章 本月热门 热评
1 ExtJS的FileUploadField组件上传多个文件 2011/5/8
2 MyEclipse中修改CSS样式不起作用的解决方法 2011/6/4
3 Hibernate一对一唯一外键关联映射的实现方法实例 2011/9/4
4 Linux下sed,awk,grep,cut,find等常用命令介绍 2011/6/11
5 Spring与Struts2整合的两种解决方案 2011/5/23
6 Javascript笔记 – 函数式的Javascript 2012/5/31
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.