ByteArrayInputStream FileInputStream

同样的用springmvc获取的图片文件,有两种格式 ByteArrayInputStream FileInputStream 先记一下 ,自己猜想应该和图片的存储方式有关?还是格式?文件编码?

用split截取.需要用split("[.]")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
IO从大的方向上分为字节和字符,包括四个抽象类: 1、输入:Reader, InputStream类型的子类(字符,字节) 2、输出:Writer, OutputStream类型的子类(字符,字节) 决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要): 第一,考虑最原始的数据格式是什么:是否为文本? 第二,是输入还是输出? 第三,是否需要转换InputStreamReader, OutputStreamWriter? 第四,数据来源(去向)是什么:文件?内存?网络? 首先是字节InputStream的实现类(System.in返回一个输入): 1)ByteArrayInputStreamByteArrayInputStream的适配源是Byte数组,它有以下构造函数: ByteArrayInputStream(byte[] buf) 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。 ByteArrayInputStream(byte[] buf, int offset, int length) 创建 ByteArrayInputStream,用byte 数组的第 off 个位置先后的 len 个位置buf 作为其缓冲区数组。 2)FileInputStreamFileInputStream的适配源是File对象,构造函数有: FileInputStream inFirst = new FileInputStream("test.txt");//默认工作站   File f = new File("test.txt"); FileInputStream inSecond = new FileInputStream(f); 3)PipeInputStream:通常用于进程间,构造函数有: PipedInputStream() PipedInputStream(PipedOutputStream out)直接连接到输出 4)SequenceInputStream:这个类可以将几个输入串联在一起合并为一个输入,构造函数有: SequenceInputStream(Enumeration e)枚举类型e中包含了若干个要被串联的输入 SequenceInputStream(InputStream s1, InputStream s2)先读取s1中数据。再读s2的数据。 以上能够直接对数据进行读和写的叫节点,但是直接用这些来操作是比较麻烦的,而且一个字节一个字节的对文件处理,对硬盘的读取和存入对硬盘的损伤是很大的,因此需要对这些节点进行包装,即外套一些处理来进行操作,InputStream有以下处理: 1) BufferedInputStream:带缓冲的输入,构造函数有: BufferedInputStream(InputStream in)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值