Bootstrap

Java:流(Stream)

流的概念

流(Stream),也有小溪的意思,系统中的流也可以用小溪来理解:单方向的,有位置的。

像一开始的“hello world”程序中,System是一个类,out是System类的一个静态成员,println是out成员可以做的一些事情
(方法),out这个成员是做输出的一个流。

Java中,所有输出都基于OutputStream,所有输入都基于InputStream这个类,
这两个类都是抽象的,我们能用它们具体的子类,我们可以参考来得知可以使用的方法
(如out除了println还可以使用什么方法)

流的实例

输入输出
public class test {
 

	public static void main(String[] args){
		System.out.print("hello world:");
		byte[] buffer = new byte[1024];
		try {									//read是阻塞函数(走到这里如果没输入会一直等待)
			int len = System.in.read(buffer);	//读取输入的字符,返回输入的字符的个数
			String s = new String(buffer, 0, len);
			System.out.println("读到了"+len+"字节");
			System.out.println(s);
			System.out.println("s的长度是: "+s.length());
		} catch (IOException e) {
			e. printStackTrace();
		}
	}

}

结果

hello world:123abc
读到了8字节
123abc

s的长度是: 8
输出到文件
public class test {
 

	public static void main(String[] args){
		System.out.print("hello");
		byte[] buffer = new byte[10];
		for(int i=0; i<buffer.length; i++) {
			buffer[i] = (byte)i;
		}
		try {
			FileOutputStream out = new FileOutputStream("a.dat");
			out.write(buffer);
			out.close();
		} catch (IOException e) {
			e. printStackTrace();
		}
	}
	
}

会在工作目录下创建一个a.dat文件,可以用WinHex软件来查看二进制文件。
现在基本只有在造轮子的时候会裸的使用FileInputStream和FileOutputStream来操作文件了。
在工作用我们不怎么使用FileInputStream和FileOutputStream来操作文件了,都是使用别人写好的工具。

下节(流过滤器)

Java:流过滤器

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;