IO流

IO流:输入输出流
流是一组由顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流。
流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的警醒数据操作。

IO流的分类:
根据数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流

如何选择使用使用字节流还是字符流:

一般操作非文本文件时,使用字节流,操作文本文件时,建议使用字符流

字节流

字节输出流

OutputStream类

定义:

public abstract class OutputStream extends Object implements Closeable,Flushable

此抽象类是表示输出字节流的所有类的超类。

向文件中输出,使用FileOutputStream类

 public static void out(){
        //0、确定目标文件
        File file = new File("c:\\Javatest\\test.txt");
        if(!file.exists()){
            try {
                file.createNewFile();
                System.out.println("文件创建成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
            //1、创建一个文件输出流对象
            try {
                OutputStream out = new FileOutputStream(file); //加上true为 在文件后追加
                //2、输出的内容
                String info = "真正的勇士敢于直面淋漓的鲜血";//文件中的换行为 \r\n
                //3、把文件写入到文件
                out.write(info.getBytes());
                //4、关闭流
                out.close();

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

        }
    }
字节输入流

InputStream类

定义

public abstream class InputStream extends Object implements Closeable

此抽象类是表示字节输入流的所有类的超类。

FileInputStream 从文件系统中的某个文件中获得输入字节。

public static void in(){
        //0、确定目标文件
        File file = new File("c:\\Javatest\\test.txt");
        //1、创建一个文件输入流对象
        try {
            InputStream in =new FileInputStream(file);
            //2、读取文件
            byte[] bytes = new byte[1024];
            StringBuilder buf = new StringBuilder();
            int len = -1;//表示每次读取的字节长度
            //把数据读入到数组中,并返回读取的字节数,当不等-1时,表示读取到数据,等于-1表示文件已经读完
            while((len = in.read(bytes)) != -1){
                //根据读取到的字节数组,再转换成字符串内容,添加到StringBilder中
                buf.append(new String(bytes,0,len));
            }
            System.out.println(buf);
            //3、关闭输入流
            in.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }