IO流

用于日常学习:
IO流,是在内存和硬盘之间进行数据传输的方式,例如,想要将硬盘上的文本文件读入到内存当中就需要IO流的操作,IO流也是输入(读)输出(写)流,输入输出流是相对而言的。根据流向分为输入流和输出流,一般我们写的程序都是运行在内存当中,所以,我们将硬盘上的文件读入到内存(也就是我们写的程序当中)叫做输入流InputStream,相反,如果我们将内存中的文件写到硬盘文件中,叫做输出流OutputStream。根据传输的类型,比如如果是文本文件,通过字符char[]数组传输,我们把这种流叫做字符流,一般字符流是以Writer/Reader结尾;如果传输的是音频、音乐、视频等文件,我们需要用字节byte[]数组进行传输,我们把这种流叫做字节流。

我们常用的流有:
文件类型的字节输入输出流:FileInputStream/FileOutputStream、文件类型的字符输入输出流:FileReader/FileWriter;

转换流:InputStreamReader/OutputStreamReader,这种转化流是将字节流转化为字符流;

缓冲流:BufferedInputStream/BufferedOutputStream/BufferedReader/BufferedWriter,BufferedReader有readLine()方法,一读读一行,对文本类型的文件这种方法代码简单,读取方便,BufferedWriter写的时候可以写String类型的字符串,读写比较方便;

数据流:DataInputStream/DataOutputStream,数据流可以写byte,short,int,long,float,double,boolean,char类型的数据,在进行读取的时候要按照写的顺序进行读取,否则读取失败,可用于知道规则的加密

标准输出流:PrintWriter/PrintStream,可用于输出到控制台的流,也可以改变输出的方向,例如日志文件

对象专属流:ObjectInputStream/ObjectOutputStream

文件拷贝代码

public static void main(String[] args) {
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            //将source.txt里的内容拷贝到123.txt
            fis = new FileInputStream("D:/source.txt");
            fos = new FileOutputStream("D:/123.txt");
            //读写一次操作的字节数大小
            byte[] bytes = new byte[1024*1024];
            int temp = 0;
            while((temp = fis.read(bytes)) != -1){
                fos.write(bytes,0,temp);
            }
            //输出流刷新
            fos.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fos != null) {
                try {
                    //流关闭
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fis != null) {
                try {
                    //流关闭
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值