根据数据的流向分为: 输入流和 输出流。
- 输入流 :把数据从
其他设备
上读取到内存
中的流。 - 输出流 :把数据从
内存
中写出到其他设备
上的流。
格局数据的类型分为:字节流和字符流。
- 字节流 :以字节为单位,读写数据的流。
- 字符流 :以字符为单位,读写数据的流。
1 父类们
输入流 | 输出流 | |
---|---|---|
字节流 | 字节输入流 InputStream |
字节输出流 OutputStream |
字符流 | 字符输入流 Reader |
字符输出流 Writer |
2 文件字节输出流 FileOutputSteam
是OutputStream的子类
作用: 把内存中的数据写入到硬盘中的文件中
public FileOutputStream(File file)
:创建文件输出流以写入由指定的 File对象表示的文件。public FileOutputStream(String name)
: 创建文件输出流以指定的名称写入文件。-
构造方法会根据参数的路径创建文件
使用步骤
- 创建一个FileOutputStream对象
- 调用对象中的Write方法,将数据写入到文件
- 释放资源
示例
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class IO5OutputStream {
/*
close()` :关闭此输出流并释放与此流相关联的任何系统资源。
flush() ` :刷新此输出流并强制任何缓冲的输出字节被写出。
write(byte[] b)`:将 b.length字节从指定的字节数组写入此输出流。
write(byte[] b, int off, int len)` :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。
outputStream的 子类 FileOutputStream * 文件字节输出流
*/
public static void main(String[] args) {
try {
FileOutputStream fos1 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\a.txt");
fos1.write(97);
fos1.write(98);
fos1.write(99); //abc
fos1.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileOutputStream fos2 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\b.txt");
byte[] bytes1 = {65,66,67,68,69}; //ABCDE
fos2.write(bytes1);
fos2.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileOutputStream fos3 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\c.txt");
byte[] bytes2 = {65,66,67,68,69,70,71,72,73}; //ABCDE
fos3.write(bytes2,3,4); //第3个byte数组开始 写入4个字节 DEFG
fos3.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileOutputStream fos4 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\d.txt");
String str = "大宝剑"; //一个中文占3个字节(UTF-8)
byte[] bytes3 = str.getBytes();
fos4.write(bytes3,3,6);
fos4.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}