您的位置:首页 > 其它

IO流

2020-07-14 06:31 281 查看

输入流(从磁盘读到内存)---- InputStream Reader
输出流(从内存写到磁盘)---- OutpuutStream Writer

字节流(以字节方式进行处理)---- InputStream OutpuutStream
所有文件都可使用
字符流(以字符方式进行处理)---- Reader Writer
只有普通文本文件才能使用

InputStream Reader OutpuutStream Writer 是所有IO流的顶级父类(抽象类)




文件流
java.io.FileInputStream
java.io.FileOutputStream
java.io.FileReader
java.io.FileWriter
用于对文件的操作

缓冲流
java.io.BufferedInputStream
java.io.BufferedOutputStream
java.io.BufferedReader
java.io.BufferedWriter
缓冲流是对流的操作的功能的加强,提高了数据的读写效率。既然缓冲流是对流的功能和读写效率的加强和提高,所以在创建缓冲流的对象时应该要传入要加强的流对象。

对象流
java.io.ObjectInputStream
java.io.ObjectOutputStream
将java程序中的对象进行读取或写入,对应对象要实现序列化接口

转换流
java.io.InputStreamReader
java.io.OutputStreamWriter
这类流是从字节流到字符流的桥接器,用于操作字符文件

打印流
java.io.PrintStream
java.io.PrintWriter
打印流:只做输出没有输入,可以直接向文件中写数据。并且不需要关闭流

FileInputStream
构造方法
public FileInputStream​(String name)
该文件由文件系统中的路径名name命名
public FileInputStream​(File file)
该文件由文件系统中的File对象file命名

常用方法
public int read() throws IOException
从此输入流中读取一个字节的数据,
结果:数据的下一个字节如果到达文件的末尾, -1 。
public int read​(byte[] b) throws IOException
从此输入流b.length最多b.length个字节的数据读入一个字节数组。
结果:读入缓冲区的总字节数,如果由于文件末尾已到达而没有更多数据, -1 。
public int available() throws IOException
估计可以从此输入流中无阻塞地读取(或跳过)的剩余字节数。

FileOutputStream
构造方法
public FileOutputStream​(String name)
该文件由文件系统中的路径名name命名
public FileOutputStream​(File file)
该文件由文件系统中的File对象file命名
以上两个构造方法,可加入第二个参数,默认为false,如果第二个参数是true ,则字节将写入文件的末尾而不是开头

常用方法
public void write​(byte[] b, int off, int len) throws IOException
将从偏移量为 off的指定字节数组中的 len字节写入此文件输出流。
public abstract void flush() throws IOException
刷新流。 如果流已从缓冲区中的各种write()方法保存任何字符,请立即将它们写入其预期目标。

FileWriter
构造方法类似FileOutputStream
public Writer append​(CharSequence csq) throws IOException
将指定的字符序列追加到此writer。CharSequence是String的实现接口。返回当前输出流
所以可以通过这个方法实现字符串的追加

案例

package day;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Copy {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("G:\\javajiaochen\\file\\beidahuang.mp3");
FileOutputStream fos = new FileOutputStream("G:\\javajiaochen\\file\\new.mp3");
//public int read​(byte[] b) throws IOException
//读入缓冲区的总字节数,如果由于文件末尾已到达而没有更多数据, -1 。
int len = 0;
//每次传输字节数
byte[] bytes = new byte[1024*1024];
while ((len = fis.read(bytes)) != -1){
fos.write(bytes,0,len);
fos.flush();
}
fos.close();
fis.close();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: