Io流和操作总结

来源:互联网 发布:公共场所网络上报 编辑:程序博客网 时间:2024/06/06 07:11

流总结

字节流:

         InputStream:字节输入流的超类。它中定义的读取字节的read方法

                   FileInputStream:专门负责从文件中读取字节数据。

                   BufferedInputStream:字节输入流的缓冲区。

         OutputStream:字节输出流的超类。定义类的写字节的数据的write方法

                   FileOutputStream:专门负责给文件中写字节数据。

                   BufferedOutputStream:字节输出流的缓冲区。

 

字符流:

         Reader:字符输入流的超类。定义的读取字符的read方法

                   InputStreamReader:将字节根据指定的编码表转成字符。字节转字符的桥梁,属于输入流

                            FileReader:便捷的字符文件输入流,使用本地默认的编码表。

                   BufferedReader:其中有readLine方法可以读取一行数据,得到的是一个字符串

        

         Writer:字符输出流的超类,定义的写字符数据的write方法

                   OutputStreamWriter:将字符数据根据指定的编码表转成字节数据,字符转字节的桥梁,属于输出流。

                            FileWriter:便捷的字符文件输出流,使用本地默认的编码表。

                   BufferedWriter:newLine方法可以写一个换行。

 

总结输入流的模版代码:

         一次读取一个字节(字符):

                   FileInputStream fis = newFileInputStream(“文件”);

                   FileReader fr = newFileReader(“文件”);

 

                   int ch = 0;

                   while( ( ch = fis.read())!=-1 ){

}

                   fis.close();  fr.close();

 

 

         一次读取多个字节(字符):

                   FileInputStream fis = newFileInputStream(“文件”);

                   FileReader fr = newFileReader(“文件”);

                   int len = 0;

                   byte[] buf = new byte[1024]; 或 char[] cbuf= new char[1024];

                   while( ( len = fis.read(buf)) !=-1 ){

}

 

fis.close();  fr.close();

 

 

 

         一次读取一行数据

                   BufferedReader bufr = newBufferedReader( new FileReader(“文件”) )

                   BufferedReader bufr = newBufferedReader( new InputStreamReader( new FileInputStream (“文件”) ))

        

                   String line = null;

                   while( ( line =bufr.readLine() )!=null ){

        

}

                   bufr.close();

 

操作规律总结

1、确定流的操作的数据特点:

         数据是字符数据还是字节数据。

                   字符数据:字符流

                   字节数据:字节流

2、确定操作的方向:

         读取操作:输入流

         写出操作:输出流

3、操作的数据编码表是否一致?

         不一致,就需要使用到转换流。

4、程序是否需要提高效率:

         加上Buffered相关的流对象。

原创粉丝点击