【IO】中的InputStream类的read(),read(b),read(b,off,len)关于close()及其顺序发生的关系

一、代码及其笔记演示:

package ioDemo.inputStream;

import java.io.IOException;
import java.io.InputStream;

import org.junit.Test;

/**
 * 一、类InputStream。<br>
 * 二、java.lang.Object->java.io.InputStream。<br>
 * 三、此类实现的接口:Closeable。<br>
 * 四、直接子类:ByteArrayInputStream,FileInputStream,FilterInputStream,InputStream,ObjectInputStream,StringBufferInputStream<br>
 * 五、public abstract class InputStream extends Object implements Closeable<br>
 * 六、此抽象类是表示字节输入流的所有类的超类。<br>
 * 七、构造方法:InputStream()<br>
 * 
 * 八、成员方法:<br>
 * 			(1) int avilable() :返回次输入流下一个方法调用可以不受阻塞地从此输入流读取或跳过的估计字节数。<br>
 * 				注意:有些 InputStream 的实现将返回流中的字节总数,但也有很多实现不会这样做。<br>
 * 				      类 InputStream 的 available 方法总是返回 0。<br> 
 * 			(2) abstract int read():从输入流中读取数据的下一个字节。<br>
 * 			(3) int read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。<br>
 * 			(4) int read(byte[] b,int off,int len):将输入流中最多len个数据字节读入byte数组b中。<br>
 * 			(5) void close():关流<br>
 * 
 *@author <a"283505495@qq.com">lxd</a>
 *@version 1.0 2017-3-17 下午10:28:33
 *@fileName InputSteam.java
 */
public class InputSteam {
	
	/**
	 * 测试read()、read(byte[] b)、read(byte[] b,int off,int len)、close()方法
	 * @throws IOException 
	 */
	@Test
	public void test1() throws IOException{
		
		/**
		 * 通过控制台输入是System.in
		 * 通过文件读取是inputStream
		 */
		
		System.out.println("----------------read()-----------------");
		InputStream inOne=System.in;
		int n2=inOne.read();
		System.out.print(n2+":"+(char)n2);
		System.out.println();
		
		System.out.println("----------------read(byte[] b,int off,int len)-----------------");
		InputStream inPart=System.in;
		byte[] b2=new byte[512];
		int n3=inPart.read(b2, 0, b2.length);
		for(int i=0;i<n3;i++){
			System.out.print((char)b2[i]);
		}
		
		
		System.out.println("----------------read(byte[] b)-----------------");
		InputStream in=System.in;
		byte[] b=new byte[512];
		int n=in.read(b);//将输入或读取的字节读到缓冲数组b中
		for(int i=0;i<n;i++){
			System.out.print((char)b[i]);
		}
		
	}

}




二、运行结果:

1、从结果我们看出:输入所有字符可以只读一个,也可以读取一部分,也可以读全部

2、但是如果在两个字节流读入之间上一个关流的话,会出现后边的输入及读写无法进行!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值