IO流概述总结(差点给自己整理崩溃了)

IO流总结

说白了,IO流就是对数据存储和取出做操作
什么是IO
I:inpput,就是输入流
O:output,就是输出流

分类

输入流

字节输入流

字节输入流:InputStream—>FileInputStream

FileInputStream fis = new FileInputStream("a.txt");
字节输入流获取数据的俩种方式
1、一次读取一个字节
            int b = 0;
            while((b=fis.read())!=-1){
                System.out.println((char)b);
            }

代码实现

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

public class Demo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
        int b = 0;
        while ((b=fis.read())!=-1){
            System.out.println(((char) b));
        }

        fis.close();
    }
}

运行效果:

这里是引用

2、一次读取一个字节数组
			byte[] bytes = new byte[1024];
            int length = 0;
            while((length=fis.read(bytes))!=-1){
                System.out.println(new String(bytes,0,length));
            }

代码实现:

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

public class Demo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
        byte[] bytes = new byte[1024];
        int length = 0;
        while ((length = fis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,length));
        }

        fis.close();
    }
}

运行效果截图

这里是引用

字节缓冲输入流

字节缓冲输入流:BufferedInputStream

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));
字节缓冲输入流获取数据的俩种方式
1、一次读取一个字节
int b = 0;
        while ((b=bis.read())!=-1){
            System.out.println((char)b);
        }

        bis.close();

代码实现:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));

        int b = 0;
        while ((b=bis.read())!=-1){
            System.out.println((char)b);
        }

        bis.close();
    }
}

程序运行结果:

这里是引用

2、一次获取一个字节数组
byte[] bytes = new byte[1024];
        int length = 0;
        while ((length=bis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,length));
        }

代码实现

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));

        byte[] bytes = new byte[1024];
        int length = 0;
        while ((length=bis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,length));
        }
        
        bis.close();
    }
}

运行效果截图:

这里是引用

字符输入流

说字符输入流之前先说一下什么是字符流:字符流就是字节流+编码表
字符输入流:Reader – InputStreamReader

InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));

简化格式:FileReader

FileReader fr = new FileReader("a.txt");
字符输入流获取数据的两种方式
1、一次读取一个字符
int c = 0;
        while ((c=fr.read())!=-1){
            System.out.println((char)c);
        }
		fr.close();

代码实现:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        InputStreamReader isr = new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        FileReader fr = new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt");

        int c = 0;
        while ((c=fr.read())!=-1){
            System.out.println((char)c);
        }

        fr.close();
    }
}

运行效果截图:

这里是引用

2、一次读取一个字符数组
char[] chars = new char[1024];
        int length=0;
        while ((length=fr.read(chars))!=-1){
            System.out.println(new String(chars,0,length));
        }

        fr.close();

具体代码实现:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        InputStreamReader isr = new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        FileReader fr = new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt");

        char[] chars = new char[1024];
        int length=0;
        while ((length=fr.read(chars))!=-1){
            System.out.println(new String(chars,0,length));
        }

        fr.close();
    }
}

运行效果截图:

这里是引用

字符缓冲输入流

字符缓冲输入流:BufferedReader

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt")));

简化写法:

BufferedReader br = new BufferedReader(new FileReader("a.txt"));
字符缓冲数据流获取数据的俩种方式
1、一次读取一个数据
int c = 0;
        while ((c=br.read())!=-1){
            System.out.println((char)c);
        }
        br.close();

代码实现

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
        BufferedReader br = new BufferedReader(new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        int c = 0;
        while ((c=br.read())!=-1){
            System.out.println((char)c);
        }
        br.close();
    }
}

输出结果

这里是引用

一次读取一个字符数组
char[] chars = new char[1024];
        int length = 0;
        while ((length=br.read(chars))!=-1){
            System.out.println(new String(chars,0,length));
        }
        
        br.close();

具体代码实现:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
        BufferedReader br = new BufferedReader(new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        char[] chars = new char[1024];
        int length = 0;
        while ((length=br.read(chars))!=-1){
            System.out.println(new String(chars,0,length));
        }

        br.close();
    }
}

运行效果截图:

这里是引用

输出流

字节输出流

字节输出流:OutputStream–FileOutputStream

        FileOutputStream fos = new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");

字节输出流写入数据的俩种方式:
1、一次写入一个字节
fos.write(95);

具体代码实现:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
        fos.write(95);
        fos.close();
    }
}

运行效果截图:

这里是引用

一次写入一个字节数组
fos.write("我一定好好学习".getBytes());

具体代码实现

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
        fos.write("我一定好好学习".getBytes());
        fos.close();
    }
}

运行效果截图

这里是引用

字节缓冲输出流

字节缓冲输出流:BufferedOutPutStream

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
字节缓冲输出写入数据的俩种方式
1、一次写入一个字节
bos.write(97);

具体代码:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        bos.write(97);
        bos.close();
    }
}

运行效果截图

这里是引用

2、一次写入一个字节数组
 bos.write("好好学习,天天向上".getBytes());

具体代码实现:


import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        bos.write("好好学习,天天向上".getBytes());
        bos.close();
    }
}

运行效果截图:

这里是引用

字符输出流

字符输出流:Writer–OutputStreamWriter

        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));

简化写法:

        FileWriter fileWriter = new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
字符输出流写入数据的俩种方式
1、一次写一个字符
fw.write(98);

具体代码:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        FileWriter fw = new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt");

        fw.write(98);
        fw.close();
    }
}

运行效果

这里是引用

2、一次写入一个字符数组
fw.write("再给我一次机会我会说出我爱你");

具体代码实现:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
        FileWriter fw = new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt");

        fw.write("再给我一次机会我会说出我爱你");
        fw.close();
    }
}

运行效果截图

这里是引用

字符缓冲输出流

字符缓冲输出流:BufferedWriter

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));

简化写法:

        BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));

字符缓冲输出流写入数据的俩种方式
1、一次写入一个字符
bw.write(98);
2、一次写入一个字符数组
bw.write("有人阿谀奉承,有人早已麻木".toCharArray());
3、使用字符缓冲输出流对象的特殊方式实现换行
        bw.write("有人阿谀奉承,有人早已麻木");
        bw.newLine();

具体代码实现:

import java.io.*;

public class Demo {
    public static void main(String[] args) throws IOException {
//        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
        BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));

        bw.write("有人阿谀奉承,有人早已麻木");
        bw.newLine();
        bw.write("有人换了张脸企图脱颖而出");
        bw.close();

    }
}

运行效果截图

这里是引用

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被迫内卷的学习记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值