基于IO流基础总结
io解说:
- 按照流动的方向,以内存为基准,分为 输入input 和 输出 output ,即流向内存是输入流,流出内存的输出流。
- Java中I/O操作主要是指使用 java.io 包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写 出数据。
1.根据数据的流向分为:输入流和输出流。
- 输入流 :把数据从其他设备 上读取到 内存 中的流。
- 输出流 :把数据从 内存 中写出到 其他设备 上的流。
2.根据数据的类型分为:字节流和字符流。 - 字节流 :以字节为单位,读写数据的流。
- 字符流 :以字符为单位,读写数据的流。
字节流
1.由于任何数据都是以二进制数字的形式存储的,因此一切的文件数据(图片,视频,音乐,文件)都可以用字节流传输。
2.无论使用什么样的流对象,底层传输的始终为二进制数据。
字节输出流 OutputStream
java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。
- public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
- public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流。
- public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输 出到此输出流。
- public abstract void write(int b) :将指定的字节输出流。
注意: - close方法,当完成流的操作时,必须调用此方法,释放系统资源。
FileOutputStream子类
- 1.OutputStream是抽象类,不能直接实例化。因此需使用子类来创建对象。
- 2.java.io.FileOutputStream 类是文件输出流,用于将数据写出到文件。
注意事项:
当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有这个文件,会创建该文件。如果有这个文件,会清空这个文件的数据。
例如:
package file.OutputStreamDemo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
* public FileOutputStream(File file) :创建文件输出流以写入由指定的 File对象表示的文件。
* public FileOutputStream(String name) : 创建文件输出流以指定的名称写入文件。
*/
public class FileDemo1 {
public static void main(String[] args) throws FileNotFoundException {
//使用file对象创建流对象
File file=new File("D:\\Java代码\\Java基础加强\\a.txt");
OutputStream outputStream=new FileOutputStream(file);
//直接使用文件名创建流对象
FileOutputStream fileOutputStream=new FileOutputStream(
"D:\\Java代码\\Java基础加强\\a.txt");
}
}
写出字节数据
- 写出字节: write(int b) 方法,每次可以写出一个字节数据。
package file.OutputStreamDemo;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo2 {
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream=new FileOutputStream("D:\\Java代码\\Java基础加强\\a.txt");
fileOutputStream.write(97);// 写出第1个字节
fileOutputStream.write(98);// 写出第2个字节
fileOutputStream.write(99);// 写出第3个字节
fileOutputStream.write(100);// 写出第4个字节
//关流
fileOutputStream.close();
}
}
1.虽然参数为int类型四个字节,但是只会保留一个字节的信息写出。
- 流操作完毕后,必须释放系统资源,调用close方法,千万记得。
网友评论