Java基础-----IO流

Java基础-----IO流

文章目录


一、IO流

1.1、IO流的简介

在这里插入图片描述
在这里插入图片描述

1.2、输入和输出

在这里插入图片描述
在这里插入图片描述

1.3、数据源

在这里插入图片描述

1.4、流的概念

在这里插入图片描述
在这里插入图片描述

1.5、Java中四大IO抽象类

在这里插入图片描述
在这里插入图片描述

1.6、Java中流概念细分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7、流的体系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


二、流的入门案例

2.1、第一个IO流程序

在这里插入图片描述

package wr.oyc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class demo1 {
    public static void main(String[] args) throws IOException {


        FileInputStream fileInputStream = null ;

        try{
            fileInputStream = new FileInputStream("d:/a.txt");

            int s1 = fileInputStream.read() ;



            System.out.println(s1);
        }catch (FileNotFoundException e){
            e.printStackTrace();

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(fileInputStream!=null){
                fileInputStream.close();
            }
        }
    }
}

2.1.1、改造第一个IO流程序

因为每一次使用read()获取很麻烦
所以接下来改造以下

package wr.oyc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream fileInputStream = null ;
        StringBuffer stringBuffer = null ;

        try{
            fileInputStream = new FileInputStream("d:/a.txt");

             stringBuffer = new StringBuffer();

            int temp = 0 ;
//            使用循环解决
//            我们知道read()获取不到数据会返回-1
            while( (temp =fileInputStream.read())!=-1){

                stringBuffer.append(temp + ",");
            }



        }catch (FileNotFoundException e){
            e.printStackTrace();

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            System.out.println(stringBuffer);
            if(fileInputStream!=null){
                fileInputStream.close();
            }
        }
    }
}

在这里插入图片描述
在这里插入图片描述

三、File类

3.1、File类的作用

在这里插入图片描述

3.2、File类操作

在这里插入图片描述

3.2.1、针对文件操作的方法

在这里插入图片描述
在这里插入图片描述

3.2.2、针对目录操作的方法

在这里插入图片描述

3.2.3、File类的基本使用

package wr.oyc.fileclass;

import java.io.File;
import java.io.IOException;

public class File01 {
    public static void main(String[] args) throws IOException {
        File file = new File("d:/g.txt");
        //创建File对象
        file.createNewFile();

        System.out.println(        file.exists() );
        //判断文件是否存在

        System.out.println( file.getName());
        //获取文件名

        System.out.println(file.isFile());

        System.out.println(file.isHidden());

        //判断可执行文件
        System.out.println(file.canExecute());

        //判断文件是否可读
        System.out.println(file.canRead());

        //判断文件是否可写
        System.out.println(file.canWrite());


//        System.out.println(file.delete());
        //删除文件
        file.delete();

         file = new File("d:/g.txt");

        System.out.println(file.isFile());
    }

}
package wr.oyc.fileclass;

import java.io.File;

public class File02 {
    public static void main(String[] args) {
        File file = new File("d:/f");

        //创建文件夹
//        file.mkdir();


        //查询目录存不存在
//        System.out.println(file.exists());

        //如果file不是目录就创建这个目录
//        if(!file.isDirectory()){
//            file.mkdir();
//        }

        //获取父级的目录
        System.out.println(  file.getParentFile() );

        //返回一个字符串数组
        System.out.println(file.list());


        //返回一个File数组
        System.out.println(file.listFiles());
        

    }
}

四、常用流对象

4.1、文件字节流

在这里插入图片描述

4.1.1、文件字节输入流

在这里插入图片描述

package wr.oyc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream fileInputStream = null ;
        StringBuffer stringBuffer = null ;

        try{
            fileInputStream = new FileInputStream("d:/f.txt");

             stringBuffer = new StringBuffer();

            int temp = 0 ;
//            使用循环解决
//            我们知道read()获取不到数据会返回-1

            while( (temp =fileInputStream.read())!=-1){

                stringBuffer.append(temp + ",");
            }



        }catch (FileNotFoundException e){
            e.printStackTrace();

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            System.out.println(stringBuffer);
            if(fileInputStream!=null){
                fileInputStream.close();
            }
        }
    }
}

在这里插入图片描述

4.1.2、文件字节输出流

在这里插入图片描述
在这里插入图片描述

但是这样做,很消耗时间,也很慢的,所以怎么解决?

4.1.3、通过缓冲区提高读写效率(解决4.2中问题)

4.1.3.1、方式一

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1.3.2、方式二

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1.4、通过字节流缓冲提高读写效率(解决4.2中问题)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.1.5、定义文件拷贝工具类

在这里插入图片描述

在这里插入图片描述

4.2、文件字符流

在这里插入图片描述

4.2.1、文件字符输入流

在这里插入图片描述

4.2.2、文件字符输出流

在这里插入图片描述

4.2.2、使用文件字符流拷贝文件

在这里插入图片描述

4.3、字符缓冲流

在这里插入图片描述

4.3.1、字符输入缓冲流

在这里插入图片描述

在这里插入图片描述

4.3.2、字符输出缓冲流

在这里插入图片描述

在这里插入图片描述

4.3.3、使用字符缓冲流实现文件拷贝

在这里插入图片描述

4.3.4、使用字符缓冲流实现文件内容添加行号

在这里插入图片描述
在这里插入图片描述

4.3、转换流

在这里插入图片描述
在这里插入图片描述

4.3.1、通过转换流实现输入屏幕输出

在这里插入图片描述

4.3.2、通过字节流读取文本文件并添加行号

在这里插入图片描述

4.4、字符输出流

在这里插入图片描述
在这里插入图片描述

4.6、字节数组流

在这里插入图片描述
在这里插入图片描述

4.6.1、字节数组输入流

在这里插入图片描述

4.6.2、字节数组输出流

在这里插入图片描述
在这里插入图片描述

4.7、数据流

在这里插入图片描述

4.7.1、数据输出流

在这里插入图片描述
在这里插入图片描述

4.7.2、数据输入流

在这里插入图片描述

4.8、对象流

在这里插入图片描述

4.8.1、Java对象的序列化和反序列化

在这里插入图片描述

4.8.2、序列化设计的类和接口

在这里插入图片描述

4.8.3、操作基本数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.8.4、操作对象

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.9、随机访问流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、File类在IO中的作用

在这里插入图片描述
在这里插入图片描述

六、Apache IO包

在这里插入图片描述
在这里插入图片描述

6.1、FileUtils的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2、IoUtils的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、本章总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


版权声明:本文为qq_48788523原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。