学习日记(Java_字节流)

字节流的作用

流的本质就是数据的传输,对于IO流常见的作用包括文件复制、文件上传、文件下载,IO流可以被分类成字符流(纯文本文件使用)和字节流(万能的流),也可以被分为输出流(写)和输入流(读)(所谓的输入和输出是相对JVM或者控制台的输入输出)。

字节流的写数据&读数据(FileOutputStream & FileInputStream)

过程概述

首先创建对象
    创建时若文件存在,将会清空文件
    创建时若文件不存在,将会根据操作创建文件
调用对象的方法
关闭资源

f1.write("\r\n".getBytes());    //在windows中表示换行(Linux使用"\n".getBytes(),mac使用"\r".getBytes()表示换行)

具体代码示例

package IOStream_study;

import java.io.FileOutputStream;
import java.io.IOException;

public class demo001 {
    public static void main(String[] args) throws IOException {
        FileOutputStream f1 = new FileOutputStream("cc\\fos.txt");
        byte[] bys = "abcdes".getBytes();
        f1.write(bys,1,3);
        f1.close();
    }
}
/*
* 写数据的第二种方式
* byte[] bys1 = {1,2,3,4,a,b,c};
* byte[] bys2 = "abcde".getBytes();
* f1.write(bys1);
*
* 写数据的第三种方式,写入bys2的从0位及后面的三位
* f1.write(97);
* f1.write(98);
*
* 最后记得释放资源f1.close();
*/
package IOStream_study;

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

public class demo002 {
    public static void main(String[] args) throws IOException {
        FileInputStream f1 = new FileInputStream("cc\\fos.txt");
        int by;
        while((by=f1.read())!=-1){
            System.out.println((char)by);
        }
        f1.close();
    }
}
package IOStream_study;

import java.io.FileOutputStream;
import java.io.IOException;

public class demo003 {
    public static void main(String[] args) throws IOException {
        FileOutputStream f1 = new FileOutputStream("cc\\fos.txt",true);
        f1.write("\r\n".getBytes());
        for(int i=0;i<10;i++){
            f1.write("hello".getBytes());
            f1.write("\r\n".getBytes());
        }
        f1.close();
    }
}

应用举例复制文件(文本或者图片)

package IOStream_study;

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

public class demo004 {
    public static void main(String[] args) throws IOException {
        FileInputStream f1 = new FileInputStream("cc\\Demo_Pecture.jpg");
        FileOutputStream f2 = new FileOutputStream("cc\\Copy_Pecture.jpg");
        byte[] bys = new byte[1024];
        int len;
        while((len=f1.read(bys))!=-1){
            f2.write(bys,0,len);
        }
        f1.close();
        f2.close();
    }
}

字节缓冲流的作用

通过设置自己缓冲流,避免每次读取/写入一个字节导致底层系统的调用

字节缓冲流举例复制视频

package IOStream_study;

import java.io.*;

public class demo005 {
    public static void main(String[] args) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("cc\\Demo_video.mp4"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("cc\\copy_video.mp4"));
        byte[] bys = new byte[1024];
        int len;
        while((len=bis.read(bys))!=-1){
            bos.write(bys,0,len);
        }
        bis.close();
        bos.close();
    }
}

补充知识(异常及异常处理)

注意区分Error(错误)和Exception(异常)
Error:开发过程中的语法或逻辑错误及JVM无法解释的严重错误
Exception:因为偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,试图读取不存在的文件,网络连接中断等等。Exception分为两类:运行时异常和编译时异常

异常处理

Java异常和异常处理(主要是try-catch的掌握)_java 发生异常进不去catch-CSDN博客

//try - catch - finally
try{
    代码/可能有异常
}catch(Exception e){
    //捕获异常
    //1、当异常发生时
    //2、系统将异常封装成Exception对象e,传递给catch
    //3、得到异常对象后,程序员,自己处理
    //4、注意,如果没有发生异常,catch代码块不执行
}finally{
    //1、不管try代码块是否有异常发生,始终要执行finally
    //2、所以,通常将释放资源的代码,放在finally
}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值