JAVA-IO流-字符流、字节流使用模板

IO流-字符流、字节流使用模板

使用之前

1.使用IO流之前,首先要弄清楚要操作的文件是什么类型
2.是字符就用字符流,是字节就用字节流
3.使用缓冲流可以提高效率
4.使用完之后必须关闭流,不然不会生效

字符流

/**
 * 字符输入流连续读、读一行
 * 字符输出流 将读到的数据写入文件
 */
 public static void bufferedReaderAndWriter(){
    String oldPath = "d:\\a.txt";
    String newPath = "d:\\b.txt";
    BufferedReader bufferedReader = null;
    BufferedWriter bufferedWriter = null;
    char[] chars = new char[1024];
    int len;
    try {
        bufferedReader = new BufferedReader(new FileReader(oldPath));
        bufferedWriter = new BufferedWriter(new FileWriter(newPath));

        //字符流读一行
        //bufferedReader.readLine();
        //字符流连续读
        while ((len = bufferedReader.read(chars)) != -1){
            //字节流写入
            bufferedWriter.write(new String(chars,0,len));
            bufferedWriter.newLine();
        }
        System.out.println("传输完毕");
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if(bufferedReader != null){
                bufferedReader.close();
            }
            if(bufferedWriter != null){
                bufferedWriter.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

字节流

/**
 * 字节输入流读取二进制文件
 * 字节输出流 将读到的数据写入文件
  */
public static void bufferedInputStreamAndOutputStream(){
    String oldPath = "d:\\cloudmusic\\cardigan - Taylor Swift.mp3";
    String newPath = "d:\\b.mp3";
    int len;
    byte[] bytes = new byte[1024];
    BufferedInputStream bufferedInputStream =null;
    BufferedOutputStream bufferedOutputStream = null;
    try {
        bufferedInputStream = new BufferedInputStream(new FileInputStream(oldPath));
        bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(newPath));
        //字节流一次读1024个字节
        while ((len = bufferedInputStream.read(bytes)) != -1){
            bufferedOutputStream.write(bytes,0,len);
        }
        System.out.println("传输完毕");
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if(bufferedInputStream != null){
                bufferedInputStream.close();
            }
            if(bufferedOutputStream != null){
                bufferedOutputStream.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值