java常用类解析二:IO系统输入输出类
InputStream的作用是用来表示那些从不同数据源产生输入的类。OutputStream决定了输出所要去往的目标
数据源 对应的类(都继承自InputStream)
(1)字节数组 ByteArrayInputStream [ByteArrayOutputStream]
(2)String对象 StringBufferInputStream(已弃用)
(3)文件 FileInputStream [FileOutputStream]
(4)“管道” PipedInputStream [PipedOutputStream]
(5)由其它种类的流组成的序列 SequenceInputStream
(6)其他数据源,如Internet

示例:
- <span style="font-size:16px;">package test;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.util.Arrays;
- /*
- * ByteArrayInputStream(ByteArrayOutputStream)表示从字节数组产生输入(输出)
- * 这个类其实就是对一个字节数组进行操作,把这个字节数组看成一个缓冲区
- * 关闭方法是一个空方法,关闭后不影响其他方法
- * 可以将数组定位到指定位置开始读/写,可以将数组从头开始读/写,可以查看数组还有几个字节可用
- * 可以在某个位置做标记,可以返回到标记位置进行读/写
- */
- public class ByteArrayInputStreamDemo {
- public static void main(String[] args) {
- // 输入流缓冲区(假设已经有若干字节)
- byte[] inputBuff = new byte[] { 1, 2, 3, 'a', 'b', 'c', 'd', 'e', 'f' };
- byte[] result = new byte[20];
- ByteArrayInputStream inputStream = new ByteArrayInputStream(inputBuff);
- // 将缓冲区的字节读入result数组并输出result
- inputStream.read(result, 0, 20);
- System.out.println(Arrays.toString(result));
- // 将result数组写入输出流
- ByteArrayOutputStream outStream = new ByteArrayOutputStream();
- outStream.write(result, 0, 20);
- System.out.println(Arrays.toString(outStream.toByteArray()));
- }
- }
- </span>
- <span style="font-size:16px;">package test;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- /*
- * FileInputStream从文件中产生输入流,FileOutputStream
- * 把输出流输出到文件。读/写、打开和关闭都是调用本地方法
- */
- public class FileInputStreamDemo {
- public static void main(String[] args) throws IOException {
- FileInputStream inputStream = null;
- try {
- inputStream = new FileInputStream(new File("file/bb.dat"));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- // 读到一个字节数组
- byte[] result = new byte[500];
- // int b;
- // while ((b = inputStream.read()) != -1)//读一个字节
- // System.out.print((char) b);
- inputStream.read(result);
- // System.out.println(Arrays.toString(result));
- inputStream.close();
- FileOutputStream outputStream = null;
- // true表示以追加的形式打开
- outputStream = new FileOutputStream("file/bb.dat", true);
- // 写入
- outputStream.write((int) 'A');
- outputStream.write(result);
- outputStream.close();
- }
- }
- </span>

浙公网安备 33010602011771号