JavaSE--IO流

学习时间

2021-04-08

学习内容

IO流基础知识

定义

  1. IO流用来处理设备之间的数据传输
  2. Java对数据的操作是通过流的方式
  3. Java用于操作流的对象都在IO包 java.io 当中

概述

  1. 字节流的抽象基类:
    InputStream ,OutputStream。

  2. 字符流的抽象基类:
    Reader , Writer。

  3. 注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
    如:InputStream的子类FileInputStream。
    如:Reader的子类FileReader。

分类

(1): 按照流向进行划分

输入流
输出流

(2): 按照操作的数据类型进行划分

字节流
字节输入流	InputStream					读
字节输出流	OutputStream				写

字符流
字符输入流 	Reader						读
字符输出流	Writer						写

常用字节流

FileOutputStream类 和 FileInputsteam类

构造方法
  1. FileOutputStream(File file)
  2. FileOutputStream(String name)
  3. FileInputStream(File file)
  4. FileInputStream(String name)
常用方法
  1. public void write(int b):写一个字节 超过一个字节的时候,忽略掉前面的字节
  2. public void write(byte[] b):写一个字节数组
  3. public void write(byte[] b,int off,int len):写一个字节数组的一部分
  4. public void read():写一个字节 超过一个字节的时候,忽略掉前面的字节
  5. public void read(byte[] b):写一个字节数组
  6. public void read(byte[] b,int off,int len):写一个字节数组的一部分

注意

  1. FileOutputStream本类在new对象的时候会判断文件是否存在,如果不存在,就会自动创建出来。
  2. FileInputsteam类在new对象的时候会判断文件是否存在,如果不存在,不会自动创建,而是会报错。
演示

演示阶段异常先抛出,后文会有专门针对异常的解释和处理。

  1. 复制文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {
  public static void main(String[] args) throws IOException {
    FileInputStream in = new FileInputStream(new File("a.txt"));
    FileOutputStream out = new FileOutputStream(new File("b.txt"));
    byte[] bytes = new byte[1024];
    int by = 0;
    while ((by = in.read(bytes)) != -1) {
      out.write(bytes,0,by);
    }
    in.close();
    out.close();
    System.out.println("复制完成 ");
  }
}
  1. 复制歌曲
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {
  public static void main(String[] args) throws IOException {
    FileInputStream in = new FileInputStream("C:\\Users\\用户名\\Desktop\\贝加尔湖畔.mp3");
    FileOutputStream out = new FileOutputStream("C:\\Users\\用户名\\Desktop\\贝加尔湖畔2.mp3");
    byte[] bytes = new byte[1024];
    int by=0;
    while ((by=in.read(bytes))!=-1) {
      out.write(bytes,0,by);
    }
    in.close();
    out.close();
    System.out.println("复制完成 ");
  }
}

声明:

关于转载:

允许非商业用途转载,注明出处和链接即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值