Java基础

Java简介
Java 简介
Java 开发环境配置
Java 注释
我的第一个Java程序
Java基础语法
Java 基础语法
Java 基本数据类型
Java 变量类型
Java 权限修饰符与非权限修饰符
Java 运算符
Java 循环结构
Java 条件语句
Java switch case 语句
Java String类
Java 数组
Java 方法
Java面向对象
Java 对象和类
Java 继承
Java重写与重载
Java 多态
Java 抽象类
Java 封装
Java 接口
Java 包(package)
java this和super的使用
Java面向对象进阶
Java 泛型
Java容器
Java Enumeration接口
Java Bitset类
Java Vector 类
Java Stack 类
Java Dictionary 类
Java Hashtable 类
Java 数据结构
Java 集合框架
Java异常
Java 异常处理
Java IO
Java Properties 类
Java字节数组输出流类
Java数据输入流类
Java字节数组输出流
Java数据输入流类
Java File类
Java FileReader类
Java FileWriter类
Java 流(Stream)、文件(File)和IO
Java Scanner 类
Java并发
Java 多线程编程
Java高级技术
Java8 最新技术
Java 8 Lambda 表达式
Java 8 方法引用
Java 8 函数式接口
Java 8 默认方法
Java 8 Stream
Java 8 Optional 类
Java 8 Nashorn JavaScript
Java 8 日期时间 API
Java8 Base64
Java 8 新特性
Java9 最新技术
Java 9 新特性
Java 9 模块系统
Java 9 REPL (JShell)
Java 9 改进 Javadoc
Java 9 多版本兼容 jar 包
Java 9 集合工厂方法
Java 9 私有接口方法
Java 9 改进的进程 API
Java 9 改进的 Stream API
Java 9 改进的 try-with-resources
Java 9 改进的 @Deprecated 注解
Java 9 钻石操作符(Diamond Operator)
Java 9 改进的 Optional 类
Java 9 多分辨率图像 API
Java 9 改进的 CompletableFuture API
Java常用类
Java Number, Math 类
Java Character 类
Java StringBuffer 和 StringBuilder 类
Java 日期时间
Java 正则表达式
Java 序列化

Java字节数组输出流类

Java ByteArrayInputStream类

 


字节数组输入流在内存中创建一个字节数组缓冲区,从输入流读取的数据保存在该字节数组缓冲区中。创建字节数组输入流对象有以下几种方式。

接收字节数组作为参数创建:

ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a);

另一种创建方式是接收一个字节数组,和两个整形变量 off、len,off表示第一个读取的字节,len表示读取字节的长度。

ByteArrayInputStream bArray = new ByteArrayInputStream(byte []a, 
                                                       int off, 
                                                       int len)

成功创建字节数组输入流对象后,可以参见以下列表中的方法,对流进行读操作或其他操作。

序号 方法描述
1 public int read()       
从此输入流中读取下一个数据字节。
2 public int read(byte[] r, int off, int len)
将最多 len 个数据字节从此输入流读入字节数组。
3 public int available()
返回可不发生阻塞地从此输入流读取的字节数。
4 public void mark(int read)
设置流中的当前标记位置。
5 public long skip(long n)
从此输入流中跳过 n 个输入字节。

实例

下面的例子演示了ByteArrayInputStream 和 ByteArrayOutputStream的使用:

import java.io.*;

public class ByteStreamTest {

   public static void main(String args[])throws IOException {

      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // 获取用户输入值
         bOutput.write(System.in.read());
      }

      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      for(int x= 0 ; x < b.length; x++) {
         // 打印字符
         System.out.print((char)b[x]  + "   ");
      }
      System.out.println("   ");

      int c;

      ByteArrayInputStream bInput = new ByteArrayInputStream(b);

      System.out.println("Converting characters to Upper case " );
      for(int y = 0 ; y < 1; y++ ) {
         while(( c= bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset();
      }
   }
}

以上实例编译运行结果如下:

asdfghjkly
Print the content
a   s   d   f   g   h   j   k   l   y
Converting characters to Upper case
A
S
D
F
G
H
J
K
L
Y