目录
什么是流?
什么是流(Stream),流就是一系列的数据
流是个抽象的概念,是对输入输出设备的抽象,当不同的介质之间有数据交互的时候,JAVA就使用流来实现。
数据源可以是文件,还可以是数据库,网络甚至时候其他的程序
比如读取文件的数据到程序中,站在程序的角度来看,就叫做输入流
输入流:InputStream
输出流:OutputStream
文件输入/输出流:
建立一个文件输入流,这个流可以用来把数据从硬盘的文件读取到JVM(虚拟机)内
这段代码只是建立一个流,并没有开始读取操作
建立一个文件输出流,这个流可以用来把内存中的数据写入到硬盘的文件中
这段代码只是建立一个流,并没有开始写入操作;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class TestStream {
public static void main(String[] args) throws FileNotFoundException {
// 创建基于文件的输入流
File file = new File("D:\\CloudMusic\\测试小说输入.txt");
// 通过这个输入流,就可以把数据从硬盘,读取到Java的虚拟机中来,也就是读取到内存中
FileInputStream fileInputStream=new FileInputStream(file);
//创建基于文件的输出流
File file1 = new File("D:\\CloudMusic\\测试小说输出.txt");
//通过这个输出流,就可以将内存中的数据,输出到硬盘的文件中
FileOutputStream fileOutputStream = new FileOutputStream(file1);
}
}
字节输入/输出流:
InputStream字节输入流
OutputStream字节输出流
用于以字节的形式读取和写入数据
以字节流的形式 读取文件内容/向文件写入内容
字节流读取:
InputStream是字节输入流,同时也是抽象类,只提供方法的声明,不提供方法的实现,FileInputStream是InputStream的子类,以FileInputSream为例进行文件读取:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class TestStream {
public static void main(String[] args) throws IOException {
//准备文件 测试.txt 其中的内容为ABCD
File f = new File("D:/CloudMusic/测试.txt");
//创建基于文件的输入流
FileInputStream fis=new FileInputStream(f);
//创建一个字节数组,长度为文件的长度
byte [] all=new byte[(int)f.length()]