IO 流

1 分别使用字符输入输出流FileWriter/FileReader
2 文件输入输出流FileInputStream/FileOutputStream
 3文件缓冲流BufferedInputStream/BufferedOutputStream
 4字符缓冲流BufferedWriter/BufferedReader
 4种方式实现

1、
package com.qiku.day21;

import java.io.FileReader;
import java.io.FileWriter;

public class CopyDemo02 {
    public static void main(String[] args) throws Exception {

        //模拟复制粘贴的过程
        //通过Reader 读取目标文件中的内容
        //通过writer 将读取到的内容写入指定位置

        FileReader reader = new FileReader("111.txt");
        FileWriter writer = new FileWriter("111副本_2.txt");
        long start=System.currentTimeMillis();
        char[] sc = new char[1024];
        while (true) {
            int read = reader.read(sc);//返回读取数组里元素的个数
            //qwer tyer
            if (read != -1) {
                //将读取的内容写入指定位置
                //由于最后一次的读取,很可能没有将数组读满,会有倒数第二次读取的残留
                //为例避免残留数据 需要:实际上读了几个,就写几个
                writer.write(sc,0, read);
            } else {//说明读完了
                break;
            }
        }
        reader.close();
        writer.close();
        long end=System.currentTimeMillis();
        System.out.println("赋值完毕   "+(end-start));
    }
}

2、

package com.qiku.day21;

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

import static java.lang.System.in;

public class FileInPutStreamDemo01 {
    public static void main(String[] args) throws Exception {
//java.io.FileInputStream;类
        //主要用于从输入流中以字节流的方式读取文件数据等

        FileInputStream fileInputStream = new FileInputStream("2.txt");
        //读取单个字节,并返回 -1  代表读完了
        System.out.println(in.read());//in.read()里面空参 代表读一个字节
        byte[] bytes=new byte[3];
        //一次性最多读bytes.length个字节,并将督导的内容存入该数组   -1代表读完了
        System.out.println(in.read(bytes));//读到的字节的个数
        System.out.println(Arrays.toString(bytes));

        System.out.println(in.available());//获取关联文件的大小
        byte[] by=new byte[20];
        //一次性读16个字节 从下表为1处开始
        System.out.println(in.read(by,1,16));//读
        System.out.println(Arrays.toString(by));



    }
}

3、

package com.qiku.day21;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class BufferdeOutPutStreamDemo01 {
    public static void main(String[] args) throws Exception {
//BufferedOutputStream 缓冲输出流  目的:提高输出流的写出效率
        //创建一个文件输出流bos,并将文件输出流fos,交给了bos来提高写的效率
       FileOutPutStream fos= new FileOutPutStream("E:\\KwDownload\\song\\2-2.lrc");
//创建了一个缓冲输出流bos,并将文件输出流fos,交给了bos来提高
        BufferedOutputStream bos = new BufferedOutputStream(fos);


        FileInputStream fis =new FileInputStream("E:\KwDownload\song\2.lrc");
BufferedOutputStream bis =new BufferedOutputStream(fis);


long start=System.currentTimeMillis();
while (true){
    int r=bis.read();
    if (r==-1){
        break;
    }else {
        bos.write(r);
    }
}
        long end =System.currentTimeMillis();
        System.out.println("wanbi"+(end-start));


        bis.close();
        bos.close();

    }
}

4、

package com.qiku.yrc.work21;

import java.io.*;

public class BufferWriterAndReader {
    public static void main(String[] args) throws Exception {
        FileReader fr= new FileReader("dd.txt");
        BufferedReader br = new BufferedReader(fr);

        FileWriter  fw=new FileWriter("dddd.txt");
        BufferedWriter bw=new BufferedWriter(fw);


        bw.write("偶像练习生 蔡徐坤申请出战");
        bw.newLine();//换行符
        String s=br.readLine();
        System.out.println(s);
        bw.close();
        br.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值