天天看点

黑马程序员_I/O流总结

------- android培训、java培训、期待与您交流! ----------

一 IO流的三种分类方式

 1.按流的方向可分为:输入流和输出流

 2.按流的数据单位不同分为:字节流和字符流

 3.按流的功能不同分为:节点流和处理流

二 IO流的四大抽象类:

 字符流: Reader Writer

 字节流: InputStream outputStream

三 InputStream的基本方法

 int read() throws IOException 读取一个字节以整数形式返回,如果返回-1则已到输入流的末尾,

 void close() 关闭流释放内存资源.

 long skip (long n) 跳过n个字节不读.

四 OutputStream 的基本方法

 void write(int b) 向输出流写入一个字节数据

 void flush( )  将输出流中缓冲的数据全部写出到目的地

五 Writer的基本方法

 void write(int c) 想输出流吸入一个字符数据

 void write(String str) 将一个字符串中的字符写入到输入流

void write(String str,int offset,int length) 将一个字符串从offset开始的length个字符写入到输出流

 void  flush ( ) 将输出流中缓冲的数据全部写出到目的地

六 Reader 的基本方法

 int read( ) 读取一个字符以整数形式返回如果返回-1则代表已到输入流的末尾

七 访问文件

 FileInputStream和FileOutputStream继承基类用于向文件中输入输出字节

 FileReader和FileWriter继承基类用于向文件中输入输出字符

八 缓冲流

 BufferedReader:提供了readLine方法用于高效读取一行字符串

 BufferedWriter:提供了newLine用于写入一个行分隔符 也就是换行

 BufferedInputStream:是一个带有缓冲区域的InputStream

 BufferedOutputStream:是一个带有缓冲区的OutputStream

九 转换流:主要作用将字节流转换成字符流

 转换流在构造时可以指定其编码集合

 编码

 InputStreamReader需要和InputStream套接

 OutputStreamWriter需要和OutputStream套接

 例:OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream(文件路径))

 方法例:osw.getEncoding();获得流的编码方式

例子:

import java.io.*;

class  IoDemo
{
	public static void main(String[] args) throws IOException
	{
		//获取键盘录入对象。
		//将字节流对象转成字符流对象,使用转换流。InputStreamReader		
		//为了提高效率,将字符串进行缓冲区技术高效操作。使用BufferedReader
		//键盘的最常见写法。
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
		String line = null;

		while((line=bufr.readLine())!=null)
		{
			if("over".equals(line))
				break;
			bufw.write(line.toUpperCase());
			bufw.newLine();
			bufw.flush();
		}

		bufr.close();
           
}