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线程初步。

  • 相关阅读:
    仿IOS中下拉刷新的“雨滴”效果
    BZOJ 4216 Pig 分块乱搞
    mybatis学习笔记(10)-一对一查询
    关于人性,我是这么看的——“唯进化”论!
    IDEA引MAVEN项目jar包依赖导入问题解决
    IntelliJ IDEA 缓存和索引介绍和清理方法
    springboot整合mybatis使用阿里(阿里连接池)和xml方式
    Intellij 如何在新窗口中打开项目
    intellij idea 在什么地方打开终端Terminal
    Spring Boot 集成MyBatis
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4337641.html
Copyright © 2011-2022 走看看