IO流
输入流(从磁盘读到内存)---- 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(); } }
- 黑马程序员--Java学习18--IO流
- java IO流相关知识梳理
- 黑马程序员--IO流(下)
- Java IO流(四)
- 黑马程序员--14--IO流
- Java IO流详解
- IO流--流转换
- IO流学习(一)File类的方法
- 呆呆的io流输入输出的一些基础
- java IO流 之 字符流之FileWriter
- IO流
- java中的IO流
- IO流(读取转换流)
- java基础5:io流对象之字节输入输出流
- IO流(删除带内容的目录)
- Java输入、输入、IO流 类层次关系梳理 阅读目录
- 初识io流条件状态
- IO流的前奏. Exception和File类
- 黑马程序员——Java的IO流学习
- ava程序员从笨鸟到菜鸟之(三十七)再谈IO流