一、关于IO中的InputStream中的read(byt[] b)方法:

/***
 * @InputStream助学笔记
 * 1、测试InputStream的使用。<p/>
 * 2、java.lang.Object->java.io.InputStream。<p/>
 * 3、InputStream 实现的接口有Closeable。<p/>
 * 4、public abstract class InputStream extends Object implements Closeable。<p/>
 * 5、直接已知子类:<p/>
 *       AudioInputStream,ByteArrayInputStream,FileInputStream,FilterInputStream,<p/>
 *       InputStream,ObjectInputStream,SequenceInputStream<p/>
 *  6、次抽象类是表示字节输入流的所有类的超类。需要定义InputStream子类的应用程序必须总是返回下一个输入字节的方法。<p/>
 *  7、InputStream中的方法:<p/>
 *  (1)abstract int read():从输入流中读取数据的下一个字节。<p/>
 *  (2)int read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。此处“换行('\r''\n')的转义字符的ASSIC码值是:13,10”。<p/>
 *  (3) 
 *  
 *@author <a"283505495@qq.com">lxd</a>
 *@version 1.0 2017-3-11 下午10:11:05
 *@fileName InputStreamDemo1.java
 */

二、演示代码:

public class InputStreamDemo1 {
	public static void main(String[] args) {
		InputStream inputStream=System.in;
		byte[] b=new byte[512];
		try {
			int n=inputStream.read(b);
			for(int i=0;i<n;i++){
				/***
				 * 此处“换行('\r''\n')的转义字符的ASSIC码值是:13,10”
				 */
				if(i==0){System.out.print("读取到b数组中的 "+n+" 个字节为:\n"+b[i]+"<==>"+(char)b[i]+",");
			}else{
				System.out.print(+b[i]+"<==>"+(char)b[i]+",");
			}
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

三、运行结果:


1、从运行结果可以看出:

(1)InputStream中的read(byte[] b)方法是:从输入流中读取一定数量的字节,并将其存储在缓冲区数组b 中。以整数形式返回实际读取的字节数。

(2)read方法读取某的一个字节可以转换为相应的ASSIC码字符,因此ASSIC码为13对应的是回车('\r')、10对应的是换行('\n'),这个我们可以从运行结果看出。

(3)windows中的换行符是\r\n,linux/unix下的换行符是\n。其中:回车符:\r=0x0d (13) return #回车;换行符:\n=0x0a (10) newline#换行。

Logo

更多推荐