欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java常用类解析二:IO系统输入输出类 博客分类: java javainputstreambytearrayinputstreamoutputstreambytearrayoutputstream 

程序员文章站 2024-02-24 21:04:40
...

InputStream的作用是用来表示那些从不同数据源产生输入的类。OutputStream决定了输出所要去往的目标

数据源 对应的类(都继承自InputStream)

(1)字节数组 ByteArrayInputStream [ByteArrayOutputStream]

(2)String对象 StringBufferInputStream(已弃用)

(3)文件 FileInputStream [FileOutputStream]

(4)“管道” PipedInputStream [PipedOutputStream]

(5)由其它种类的流组成的序列 SequenceInputStream

(6)其他数据源,如Internet


java常用类解析二:IO系统输入输出类
            
    
    博客分类: java javainputstreambytearrayinputstreamoutputstreambytearrayoutputstream 

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()));
	}

}
 
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();
	}
}
 
  • java常用类解析二:IO系统输入输出类
            
    
    博客分类: java javainputstreambytearrayinputstreamoutputstreambytearrayoutputstream 
  • 大小: 56 KB