学习时间
2021-04-08
学习内容
IO流基础知识
定义
- IO流用来处理设备之间的数据传输
- Java对数据的操作是通过流的方式
- Java用于操作流的对象都在IO包 java.io 当中
概述
-
字节流的抽象基类:
InputStream ,OutputStream。 -
字符流的抽象基类:
Reader , Writer。 -
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。
分类
(1): 按照流向进行划分
输入流
输出流
(2): 按照操作的数据类型进行划分
字节流
字节输入流 InputStream 读
字节输出流 OutputStream 写
字符流
字符输入流 Reader 读
字符输出流 Writer 写
常用字节流
FileOutputStream类 和 FileInputsteam类
构造方法
- FileOutputStream(File file)
- FileOutputStream(String name)
- FileInputStream(File file)
- FileInputStream(String name)
常用方法
- public void write(int b):写一个字节 超过一个字节的时候,忽略掉前面的字节
- public void write(byte[] b):写一个字节数组
- public void write(byte[] b,int off,int len):写一个字节数组的一部分
- public void read():写一个字节 超过一个字节的时候,忽略掉前面的字节
- public void read(byte[] b):写一个字节数组
- public void read(byte[] b,int off,int len):写一个字节数组的一部分
注意:
- FileOutputStream本类在new对象的时候会判断文件是否存在,如果不存在,就会自动创建出来。
- FileInputsteam类在new对象的时候会判断文件是否存在,如果不存在,不会自动创建,而是会报错。
演示
演示阶段异常先抛出,后文会有专门针对异常的解释和处理。
- 复制文件
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("复制完成 ");
}
}
- 复制歌曲
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("复制完成 ");
}
}
声明:
关于转载:
允许非商业用途转载,注明出处和链接即可。