> 什么是流(Stream),流就是一系列的数据
# 什么是流
当不同的介质之间有数据交互的时候,JAVA就使用流来实现。
数据源可以是文件,还可以是数据库,网络甚至是其他的程序
<br>
比如读取文件的数据到程序中,站在程序的角度来看,就叫做输入流
输入流: InputStream
输出流:OutputStream
![](../images/759.png)
# 文件输入流
```
package com.dodoke.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class TestSteam {
public static void main(String[] args) {
File f = new File("d:/log.txt");
try {
// 创建基于文件的输入流
FileInputStream fis = new FileInputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
```
> 上述代码,就建立了一个文件输入流,这个流可以用来把数据从硬盘的文件,读取到JVM(内存)。
目前代码只是建立了流,还没有开始读取,真正的读取在下个章节讲解。
# 练习-流
参考文件输入流的建立,建立一个文件输出流
```
package com.dodoke.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class TestSteam2 {
public static void main(String[] args) {
File f = new File("d:/log.txt");
try {
// 创建基于文件的输出流
FileOutputStream fis = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
```
> 通过这个输出流,就可以把数据从内存,输出到硬盘的文件上