Java的字节流与字符流

凡是带xxxStream的都是字节流,Read,Write是字符

OutputStream, InputStream, Read, Write.

这些都是抽象类,都需要一个子类实例化。

1.OutputStream.

 因为是抽象类,

用File类的对象,去实例化InputStream和OutputStream子类对象。write提供的是字符数组,所以需要装换成byte [].

		//实例化对象
		File f = new File("D:\\zqc.txt"); 
		OutputStream out = null;
		out = new FileOutputStream(f);
		String str = "zhangqingcai";
		byte b[] = str.getBytes();
		out.write(b);
		out.close();

从文件中读出内容。

InputStream,其中读进来的长度是比较重要的,读进来的长度不能无限大,只能读有效的内容。

		InputStream in = new FileInputStream(f);
		byte bb[] = new byte[500];
		int len = 0;
		len = in.read(bb);
		System.out.println(new String(bb));
		System.out.println(new String(bb, 0, len));

InputStrem 和 OuteputStream都是对字符的操作,都需要转换成byte[] 

下面介绍Writer和Reader。写的都是字符。

		//1.要操作的文件
		File f = new File("D:\\zqc.txt");
		Writer out = null;
		//2.通过子类实例化
		out = new FileWriter(f);
		String str = "Hello...!";
		//3.江字符串写入到文件中
		out.write(str);
		//4.关闭文件
		out.close();
	}

字符流输出时,不关闭无法将内容写入。

假如字符流非要不关闭的话, 需要使用清空缓存,out.flush();

字符char流用到了缓存, 而字节byte流没有使用缓存。

管道流:线程间的通信使用。

PipedOutputStream(输出流)  PipeInputStream(输入流)本次介绍忽略。


你可能感兴趣的:(Java的字节流与字符流)