5 ByteArrayInputStream 与 ByteArrayOutputStream类
来源:互联网 发布:嫁给外国人 知乎 编辑:程序博客网 时间:2024/06/05 17:17
---------------------- android培训、java培训、期待与您交流! ----------------------
ByteArrayInputStream 与 ByteArrayOutputStream类
ByteArrayInputStream 与 ByteArrayOutputStream,用于以IO流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文件或内存映像文件的功能。
编程实例:
编写一个把输入流中所有英文字母变成大写字母然后将结果写入到一个输出流对象。用这个函数将一个字符串中的所有字母转换成大写字母。
TestByteArrayStream.java
import java.io.*;
public class TestByteArrayStream {
public static void main(String[] args) {
String str = "abcdefg";
ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
transform(bais, baos);
byte[] arr = baos.toByteArray();
System.out.println(new String (arr));
transform(System.in, System.out);
}
public static void transform(InputStream is, OutputStream os) {
try {
int ch = 0;
while((ch = is.read()) != -1) {
int upperCh = Character.toUpperCase(ch);
os.write(upperCh);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
重视IO程序的复用性
System.int连接到键盘,是InputStream类型的对象,System.out连接到显示器,是PrintStream类的实例对象。
不管各种底层物理设备使用什么方式实现数据终止点,InpuStream的read() 方法总是返回-1来表示输入流的结束。
在Windows下按下Crtl + Z 键组合可以产生键盘输入流的结束标记,在Linux下,则是能过按下 Crtl + D 组合键产生键盘输入流的结束标记。
总结:
要编程从键盘上连续读取一大段数据时,应尽量将读取数据的过程放在函数中完成,使用-1来作为键盘输入的结束点。在该程序中编写的读取数据的函数时不应直接使用System.in 来读取数据,而用一个InputStream类型的形式参数来调用该函数,然后将System.in作为函数的一个实参进行使用,因此增强了函数的复用性。
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
- 5 ByteArrayInputStream 与 ByteArrayOutputStream类
- ByteArrayInputStream与ByteArrayOutputStream类
- ByteArrayInputStream与ByteArrayOutputStream
- java.ByteArrayInputStream与ByteArrayOutputStream
- ByteArrayInputStream与ByteArrayOutputStream详解
- ByteArrayinputStream与ByteArrayOutputStream,printStream
- java.ByteArrayInputStream与ByteArrayOutputStream理解
- java.ByteArrayInputStream与ByteArrayOutputStream浅谈
- (二)ByteArrayInputStream与ByteArrayOutputStream
- ByteArrayOutputStream&ByteArrayInputStream
- ByteArrayOutputStream, ByteArrayInputStream
- java.ByteArrayInputStream与ByteArrayOutputStream再次理解
- java.ByteArrayInputStream与ByteArrayOutputStream再次理解
- 黑马程序员 IO流 ByteArrayInputStream与ByteArrayOutputStream
- java.ByteArrayInputStream与ByteArrayOutputStream再次理解
- 4.5.6.1 ByteArrayInputStream和ByteArrayOutputStream类
- JAVA IO系列----ByteArrayInputStream和ByteArrayOutputStream类
- java中ByteArrayInputStream和ByteArrayOutputStream类用法
- Delphi_Format函数用法
- paip.防止代码命名重复的好方法
- 用IdTCPServer和IdTCPClient传输文件
- iPhone开发应用中CoreLocation定位学习笔记
- QPixmap与QImage的区别
- 5 ByteArrayInputStream 与 ByteArrayOutputStream类
- ACM计算几何题目推荐
- Toast显示图片提示
- 第一篇,关于Qt4+opencv实现打开摄像头和拍照功能(整理更正版)
- 6 字符编码
- ACM博弈题目总结
- ThreadLocal的解析
- linux绝对路径和相对路径
- 7 过滤流与包装类