zoukankan      html  css  js  c++  java
  • javase基础复习攻略《八》

      进入第八篇,我们开始讨论JAVA的IO初步。在JAVA程序中,对数据的输入输出操作以"流"(stream)方式进行,J2SDK提供了各种各样的"流"类,用于获取不同种类的数据,程序中通过标准的方法输入和输出数据。

     1、输入、输出流的分类:

      java.io包中定义了多个流类型(类或抽象类)来实现输入和输出功能;可以从不同的角度对其进行分类:

        按数据流的方向不同可以分为输入、输出流

        按处理数据的单位不同分为字节流和字符流

        按照功能不同分为可以分为字节流和处理流

      J2SDK提供的所有流类型位于包java.io内分别继承至一下四种抽象流类型:

      

     2、节点流和处理流:

      节点流为可以从一个特定的数据源(节点)读取数据(文本,内存)

      处理流是连接在已存在的流(节点流和处理流)之上,通过对数据的处理为程序通过更加强大的读写功能。

     3、InputStream和OutputStream:

      继承自InputStream的流都是用于向程序中输入数据,且数据单位为字节;

      继承自OutputStream的流都是用于向程序输出数据,且数据单位为字节。

      注意:这里本篇提到的输入和输出都是相对于程序而言的。

     4、InputStream常用方法:

      int read():读取一个字节并以整数的形式返回,如果返回值为-1表示读取完成

      int read(byte[] buffer):读取一系列的字节并保存到buffer字节数组中,返回值为实际读取的字节数

      int read(byte[] buffer, int offset, int length):读取length个字节,并保存到buffer字节数组中,从offset位置开始存储,返回值为实际读取的字节数

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

      long skip(long n):跳过n个字节不读,返回实际跳过的字节数。

     5、OutputStream常用方法;

      void write(int b):向输出流中写入一个字节的数据该字节数据为参数b的低8位。

      void write(byte[] buffer):将一个字节类型的数组型写入到输出流中

      void write(byte[] buffer, int off, int len):将一个字节类型的数组中的从指定位置(off)开始的,len个字节写入到输出流

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

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

     6、InputStream和OutputStream使用实例:

    public class input_output {
        public static void main(String [] args){
            try {
                FileOutputStream out = new FileOutputStream("E:\JAVA源代码\JAVASE\text.txt");
                for(int i = 1; i<5000; i++){
                    out.write(i);
                }
                FileInputStream input = new FileInputStream("E:\JAVA源代码\JAVASE\text.txt");
                int j = 0;
                while((j=input.read())!=-1){
                    System.out.println(j);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

     7、Reader和Writer:

      继承自Reader的流都是用于向程序中输入数据,且数据单位为字符;

      继承自Writer的流都是用于向程序输出数据,且数据单位为字符。

     8、Reader和Writer的常用方法:

      方法名与InputStream和OutputStream的常用方法名相同,只不过处理的单位变成了字节,请查阅上面的总结自行学习。

     9、节点流类型:

      

     10、处理流类型:

      

     11、节点流与处理流的区别:

      节点流是直接与文件接触的一种流,是最基本的流,而处理流就如包裹在节点流之上的一种流,目的是更好的完成输入和输出。

     12、缓冲流:

      缓存流要套接在相应的节点流之上,对读写数据提供缓冲的功能,提高了读写的效率,同时增加了一些新方法。J2SDK提供了四种缓存流,其常用的构造方法:

      

      增加的比较便利的新方法有:

      

     13、转换流:

      

     14、数据流:

      

     15、print流:

      

      对于JAVA中流的总结就为大家奉献到这里,下一篇JAVA线程初步。

  • 相关阅读:
    Python 学习日记 第七天
    Python 学习日记 第六天
    Python 学习日记 第五天
    Python 学习日记 第四天
    Redis 中的数据类型及基本操作
    Asp.net mvc 中View 的呈现(二)
    Asp.net mvc 中View的呈现(一)
    Asp.net mvc 中Action 方法的执行(三)
    Asp.net mvc 中Action 方法的执行(二)
    Asp.net mvc 中Action 方法的执行(一)
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4337641.html
Copyright © 2011-2022 走看看