一、这个解决了什么问题?
二、File类的构造方法和成员方法有哪些?
三、IO流的基本用法和注意事项?
一:
在使用数据库之前我们可以采取到的对内容进行存储的容器,数组[ ],集合<>,但是这些都存在一个问题,那就是IDEA结束运行,上述容器存储内容都会消失。---->所以我们使用File类和IO流可以进行数据的本机永久存储。
二:File类:描述一个文件或者一个文件夹在磁盘上的位置
构造方法:
//1-----File(String path);
File file1 = new File("C:\\User\\xxx\\Test");
//2-----File(String parent,String chlid);
File file2 = new File("C:\\User\\xxx\\Test", "a.txt");
//3-----File(File parent,String chlid);
File file3 = new File(file1,"b.txt");
成员方法:
//我们用一个对象来进行举例
File file1 = new File("C:\\User\\xxx\\Test\\c.txt");
file1.createNewFile(); //--- boolean 只能创建文件!!!
File file2 = new File("C:\\User\\xxx\\Test\\aaa\\bbb\\ccc");
file2.mkdir(); //--- boolean 这个只能创造一个文件夹,所以上面只能创建出aaa
file2.mkdirs(); //--- boolean 我们一般都是用这个,创建多层级文件夹
file2.isFile(); //--- boolean 判断该文件类型,是否为 文件
file2.isDirectory(); //--- boolean 判断该文件类型,是否为 文件夹
file2.exists(); //--- boolean 判断该文件是否存在
file2.getName(); //--- String 获取该文件的名字
file2.listFiles(); //--- File[] 获取该路径下所有的文件
file2.delete(); //--- boolean 记住!!只能删除文件和空文件夹
file2.length(); //--- long 获取文件的大小
我们还要明白一点:绝对路径(系统盘底下的:"C:\\"),相对路径(非绝对路径的都叫相对路径)。
三:IO( In / Out ):根据具体的文件完成读写操作
先明白一点什么叫做程序的读和写:(硬盘 ---> 内存:读) / (内存 ---> 硬盘:写)
分类:
①.按照方向分:输出流 / 输入流 ;
②.按照操作内容分:字节流(直接操作文件本身) / 字符流(会使用缓冲区),这里两者的区别可以在 IDEA中的运行框进行对比
其中还有重要的一点:字节流可以操作所有文件 / 字符流只能操作系统上的默认文本文档类型文件
-----字节流:a.输入流 / b.输出流 (InputStream / OutputStream)
输入流:InputStream extends Object{...} - FileInputStream extends InputStream{...} //字节输入流中存在 .read()读取的方法 - FilterInputStream extends InputStream{...} BufferedInputStream extends FilterInputStream {...} //字节缓冲输入流 - ObjectInputStream extends InputStream{...} 输出流:OutputStream extends Object{...} - FileOutputStream extends OutputStream{...} //字节输出流中存在 .write()写入的方法 - FilterOutputStream extends OutputStream{...} BufferedOutputStream extends FilterOutputStream {...} //字节缓冲输出流 - ObjectOutputStream extends OutputStream{...}
注意事项:IO流使用时,一定要注意最后.close() -----不然会占用内存!!!!!