IO
流
流的概念
1.利用while循环,(只要有数据也就是read()读到的不是-1{一直读})
int b = 0 ; //定义变量,记录read()读到的值。
while((b = in.read())!=-1){//就是一个字节一个字节从获取流中读取数据
System.out.println(b);//打印获取到的数据
}
in.close();//释放资源
2.触发String类型的构造方法,默认是数据覆盖模式
OutputStream out = new FileOutputStream(“地址”);
3.触发(String name,boolean append)类型的构造方法,数据追加模式
OutputStream out = new FileOutputStream(“地址”,true);
字节流
针对二进制文件
字节流读取
抽象类:InputStream
子类:FileInputStream()
子类:BufferedInputStream()
子类:ObjectInputStream()
字节流写出
抽象类:OutputStream
子类:FileOutputStream()
子类:BufferedOutputStream()
子类:ObjectOutputStream()
字符流
针对文本文件。读写容易发生乱码现象,在读写时最好指定编码集”UTF8“.
FileReader不能指定编码格式
字符流读取
抽象类:Reader
子类:InputStreamReader()
子类:FileReader()
子类:BufferedReader()
字符流写出
抽象类:Writter
子类:FileWritter()
子类:OutputStreamWritter()
子类:BufferedWritter()
read()和write(int d)方法
1.FileInputStream()继承自InputStream,其提供了以字节为单位读取文件数据的方法read。
-int read()
从此输入流中读取一个数据字节,若返回-1则表示End Of File
2.FileOutputStream()继承自OutputStream,其提供了以字节为单位向文件写文件数据的方法read。
-void writer(int d)
将指定字节写入此文件的输出流,这里只写给定的int值的”低八位“
read(byte[] d)write(byte[] d)方法
1.FileInputStream也支持批量读取字节数据的方法:int read(byte[] b)
从此输入流中将最多b.length个字节的数据读入到
字节数组b中
2.FileOutputStream也支持批量写出字节数据的方法:void write(byte[] d)
将b.length个字节从指定byte数组写入此文件输出
流中。
-void write(byte[] d,int offset,int len)
将指定byte数组中从偏移量off开始的len个字节
写入此文件输出流。
PrintWriter
1.PrintWriter是具有自动行刷新的缓冲字符输出流。其提供了比较丰富的构造方法。
PrintWriter(File file)
PrintWriter(String fileName)
PrintWriter(OutputStream out)
PrintWriter(OutputStream out,boolean autoFlush)
PrintWriter(Writer writer)
PrintWriter(Writer writer,boolean autoFlush)
其中参数为OutputStream与Writer的构造方法提供了一个可以传入boolean值参数,该参数用于表示
PrintWriter是否具有自动行刷新。
File文件流
File类只用于表示文件(目录)的信息(名称、大小等)不能对文件的内容进行访问。
- File(String pathname)
构造方法:
File(String pathname)
通过将给定路径名字符串转换成抽象路径名来创建一个新File实例.
抽象路径应尽量使用相对路径,并且目录的层级分隔符不要直接写”/“或”",应使用File.separator这个
常量表示,以避免不同系统带来的差异。 - File(File parent, String child)
根据parent抽象路径名和child路径名字符串创建一个新File实例 - isFile()方法
boolean isFile()
判断当前file对象是否是一个文件 - length0方法
long length()
file对象所表示的文件所占的字节量 - exists()方法
boolean exists()
判断文件或目录是否存在 - createNewFile方法
boolean createNewFile()
返回值:如果指定的文件不存在并成功地创建,则返回true ;如果指定的文件已经存在,则返回false - delete()方法
boolean delete()
删除文件或目录或空文件夹 - isDirectory方法
boolean isDirectory()
判断当前File表示的是否是一个目录 - mkdir()方法
boolean mkdir()
创建目录 - mkdirs()方法
boolean mkdirs()
返回值:当且仅当已创建目录以及所有必需的父目录
时,返回true ;否则返回false - listFiles()方法
File的listFiles方法用于返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的子项(文件或目录)。
File[] listFiles()
返回值:抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录或者发生I/O错误,则返回null。 - FileFilter接口
FileFilter用于抽象路径名的过滤器
此接口的实例可传递给File类的listFiles(File Filter)方法。用于返回满足该过滤器要求的子项。
File[] listFiles(FileFilter filter)