File类的增删改查介绍
[java]
- package com.io.file;
- import java.io.File;
- import java.io.IOException;
- public class File_1 {
- public static void main(String[] args) throws IOException, InterruptedException {
- //mehtod_file();//File类的几种创建方式
- //file_create();//创建文件
- //file_delete();//删除文件
- //file_judge();//判断文件
- //file_get();//获取File封装对象内容
- file_renameTo();
- }
- /*
- * 修改文件名称
- * 剪切文件,并粘贴文件
- */
- public static void file_renameTo(){
- //实现文件剪切功能
- // File f=new File("g:/java/aa.txt");
- // File ff=new File("d:/bbb.txt");//注意:这里不能带文件夹;f封装的路径中的文件会被删除,ff封装的路径中的文件会被创建
- // System.out.println(f.renameTo(ff));
- //文件改名
- File f1=new File("g:/java/aa.txt");
- File f2=new File("g:/java/bb.txt");//注意:这里不能带文件夹;f封装的路径中的文件会被删除,ff封装的路径中的文件会被创建
- System.out.println(f1.renameTo(f2));
- }
- /*
- * 获取文件信息
- */
- public static void file_get(){
- File f=new File("g:/java/yes.txt");
- System.out.println("getPath():"+f.getPath());//不管该文件是否存在,就是获取File对象封装的路径内容
- System.out.println("getAbsolute()"+f.getAbsolutePath());//不管该文件是否存在,获取File对象封装的绝对路径
- System.out.println("getName():"+f.getName());//获取File对象封装的文件名称,包括后缀名
- System.out.println("getParent():"+f.getParent());//获取File对象封装的文件夹路径名,注意,该方法获取的文件夹路径是File对象封装的绝对路径才能获取的,如果File对象封装的是相对路径的话,则返回null;
- //如果File对象封装的路径有上一层目录,则返回的目录就是该目录如:File f=new file("a\\b.txt");则返回a目录
- System.out.println("lastModified():"+f.lastModified());//获取File对象封装的文件最后一次修改的时间
- System.out.println("length():"+f.length());//获取File对象封装的文件的大小,即多少个字节
- }
- /*
- * 判断文件
- *
- */
- public static void file_judge(){
- File f=new File("g:/java/yes.txt");
- System.out.println(f.canExecute());//判断文件是否可执行
- System.out.println(f.exists());//判断文件是否存在
- System.out.println("-----------------------------------------");
- File ff=new File("g:/java/a/b/c/d/e/f");
- // System.out.println(ff.mkdir());//创建文件夹
- System.out.println(ff.mkdirs());//创建多级文件夹
- System.out.println("------------------------------------------");
- File fff=new File("zzzz.txt");
- //注意在判断是否是文件和目录时,一定要先判断该文件对象封装的内容是否存在
- //用exists();判断
- System.out.println(fff.isDirectory());//判断是否是目录
- System.out.println(fff.isFile());//判断是否是文件
- System.out.println(fff.isHidden());//判断文件是否隐藏
- System.out.println(fff.isAbsolute());//判断文件路径是否是绝对路径,及时文件不存在也可以判断
- }
- /*
- *删除文件
- * boolean delete();删除失败是返回false
- * void deleteOnExit();当虚拟机退出时删除文件
- */
- public static void file_delete() throws IOException, InterruptedException{
- File f=new File("g:/java/yesaaa.txt");
- boolean boo=f.createNewFile();
- System.out.println("create:"+boo);
- Thread.sleep(5000);//可以看到效果
- //boolean boo1=f.delete();
- f.deleteOnExit();//一般删除临时文件时用这个,当虚拟机关闭时,删除文件
- //System.out.println("delete:"+boo1);
- }
- /*
- * 创建文件createNewFile(),创建指定目录的文件,如果已存在,则返回false
- * 注意:这和输出流不一样,输出流对象创建文件,如果文件已存在,则会覆盖,从新创建
- */
- public static void file_create() throws IOException{
- File f=new File("g:/java/yesaaa.txt");
- boolean boo=f.createNewFile();
- System.out.println(boo);
- }
- //几种创建File类的方式
- public static void mehtod_file(){
- File f1=new File("aa.txt");//用相对路径
- File f2=new File("c:\\aa\\bb\\c.txt");//用绝对路径
- File f3=new File("c:\\aa\\bb","c.txt");//文件夹路径和文件路径分开,便于操作
- File f4=new File("c:/aa/bb/c.txt");//注意用这个斜杠"/"一个就行了,和"\\"两个这样的效果是一样的,但这样写不利于跨平台
- File f5=new File("c:"+File.separator+"aa"+File.separator+"bb"+File.separator+"c.txt");//用File类中封装的separator()方法,可以实现跨平台
- System.out.println(f1);
- System.out.println(f2);
- System.out.println(f3);
- System.out.println(f4);
- System.out.println(f5);
- }
- }
package com.io.file;import java.io.File;import java.io.IOException;public class File_1 { public static void main(String[] args) throws IOException, InterruptedException { //mehtod_file();//File类的几种创建方式 //file_create();//创建文件 //file_delete();//删除文件 //file_judge();//判断文件 //file_get();//获取File封装对象内容 file_renameTo(); } /* * 修改文件名称 * 剪切文件,并粘贴文件 */ public static void file_renameTo(){ //实现文件剪切功能// File f=new File("g:/java/aa.txt");// File ff=new File("d:/bbb.txt");//注意:这里不能带文件夹;f封装的路径中的文件会被删除,ff封装的路径中的文件会被创建// System.out.println(f.renameTo(ff)); //文件改名 File f1=new File("g:/java/aa.txt"); File f2=new File("g:/java/bb.txt");//注意:这里不能带文件夹;f封装的路径中的文件会被删除,ff封装的路径中的文件会被创建 System.out.println(f1.renameTo(f2)); } /* * 获取文件信息 */ public static void file_get(){ File f=new File("g:/java/yes.txt"); System.out.println("getPath():"+f.getPath());//不管该文件是否存在,就是获取File对象封装的路径内容 System.out.println("getAbsolute()"+f.getAbsolutePath());//不管该文件是否存在,获取File对象封装的绝对路径 System.out.println("getName():"+f.getName());//获取File对象封装的文件名称,包括后缀名 System.out.println("getParent():"+f.getParent());//获取File对象封装的文件夹路径名,注意,该方法获取的文件夹路径是File对象封装的绝对路径才能获取的,如果File对象封装的是相对路径的话,则返回null; //如果File对象封装的路径有上一层目录,则返回的目录就是该目录如:File f=new file("a\\b.txt");则返回a目录 System.out.println("lastModified():"+f.lastModified());//获取File对象封装的文件最后一次修改的时间 System.out.println("length():"+f.length());//获取File对象封装的文件的大小,即多少个字节 } /* * 判断文件 * */ public static void file_judge(){ File f=new File("g:/java/yes.txt"); System.out.println(f.canExecute());//判断文件是否可执行 System.out.println(f.exists());//判断文件是否存在 System.out.println("-----------------------------------------"); File ff=new File("g:/java/a/b/c/d/e/f");// System.out.println(ff.mkdir());//创建文件夹 System.out.println(ff.mkdirs());//创建多级文件夹 System.out.println("------------------------------------------"); File fff=new File("zzzz.txt"); //注意在判断是否是文件和目录时,一定要先判断该文件对象封装的内容是否存在 //用exists();判断 System.out.println(fff.isDirectory());//判断是否是目录 System.out.println(fff.isFile());//判断是否是文件 System.out.println(fff.isHidden());//判断文件是否隐藏 System.out.println(fff.isAbsolute());//判断文件路径是否是绝对路径,及时文件不存在也可以判断 } /* *删除文件 * boolean delete();删除失败是返回false * void deleteOnExit();当虚拟机退出时删除文件 */ public static void file_delete() throws IOException, InterruptedException{ File f=new File("g:/java/yesaaa.txt"); boolean boo=f.createNewFile(); System.out.println("create:"+boo); Thread.sleep(5000);//可以看到效果 //boolean boo1=f.delete(); f.deleteOnExit();//一般删除临时文件时用这个,当虚拟机关闭时,删除文件 //System.out.println("delete:"+boo1); } /* * 创建文件createNewFile(),创建指定目录的文件,如果已存在,则返回false * 注意:这和输出流不一样,输出流对象创建文件,如果文件已存在,则会覆盖,从新创建 */ public static void file_create() throws IOException{ File f=new File("g:/java/yesaaa.txt"); boolean boo=f.createNewFile(); System.out.println(boo); } //几种创建File类的方式 public static void mehtod_file(){ File f1=new File("aa.txt");//用相对路径 File f2=new File("c:\\aa\\bb\\c.txt");//用绝对路径 File f3=new File("c:\\aa\\bb","c.txt");//文件夹路径和文件路径分开,便于操作 File f4=new File("c:/aa/bb/c.txt");//注意用这个斜杠"/"一个就行了,和"\\"两个这样的效果是一样的,但这样写不利于跨平台 File f5=new File("c:"+File.separator+"aa"+File.separator+"bb"+File.separator+"c.txt");//用File类中封装的separator()方法,可以实现跨平台 System.out.println(f1); System.out.println(f2); System.out.println(f3); System.out.println(f4); System.out.println(f5); }}
package com.io.file;
- import java.io.File;
- import java.io.FilenameFilter;
- public class File_listRoots {
- public static void main(String[] args) {
- //listRoots();//列出所有有效盘符
- //list();//列出根文件下所有文件,文件夹,及隐藏文件
- // listFilter();//文件名过滤
- // listFiles();//获取当前目录下File对象
- File f=new File("g:/");
- // digui(f);//递归调用,实现查询目录下所有的文件及文件夹,及文件夹中的文件
- System.out.println(digui1(8000));//递归调用
- }
- /*
- * 递归调用注意两点:
- * 1:限定条件
- * 2:要注意递归次数,尽量避免内存溢出
- */
- public static int digui1(int a){
- if(a<=1){
- return 1;
- }else{
- return a+digui1(a-1);
- }
- }
- /*
- * 列出指定目录下文件或文件夹,包含子目录中的内容,遍历目录下所有的文件。
- * 因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可
- * 在列出过程中,出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身。
- * 这种表现形式或者变成手法成为递归
- */
- public static void digui(File f){
- System.out.println(f.getAbsolutePath());
- File[]ff=f.listFiles();
- for (int i = 0; i < ff.length; i++) {
- if(ff[i].isDirectory()){
- digui(ff[i]);//递归调用
- }else{
- System.out.println(ff[i]);
- }
- }
- }
- /*
- * listFiles();获取File对象
- */
- public static void listFiles(){
- File f=new File("g:/java");
- File[]ff=f.listFiles();
- for(File fff:ff){
- System.out.println(fff.getName()+"---------length:"+fff.length());
- }
- }
- /*
- * list(FileNameFilter filter),文件名过滤
- */
- public static void listFilter(){
- File f=new File("g:/java");
- String[]str=f.list(new FilenameFilter(){
- public boolean accept(File f,String name){
- return name.endsWith(".txt");//返回文件及文件夹名称以“.txt”为结尾的文件及文件夹
- // System.out.println(f+"---------name:"+name);//f代表文件目录,name代表文件夹名称及文件名称
- // return false;//返回false表示不返回
- // return true;//返回true表示返回
- }
- });
- for(String string:str){
- System.out.println(string);
- }
- }
- /*
- * //列出根文件下所有文件,文件夹,及隐藏文件
- */
- public static void list(){
- File f=new File("g:/java");//调用list()方法,该File对象必须封装一个目录,不能是文件,并且该目录确实存在才行
- String[] str=f.list();
- for (String string : str) {
- System.out.println(string);
- }
- }
- /*
- * File.listRoots():获取可用的文件系统根,简单来说就是获取系统的盘符
- */
- public static void listRoots(){
- File[] f=File.listRoots();
- for (File file : f) {
- System.out.println(file);
- }
- System.out.println(f[0]);
- }
- }
package com.io.file;import java.io.File;import java.io.FilenameFilter;public class File_listRoots { public static void main(String[] args) { //listRoots();//列出所有有效盘符 //list();//列出根文件下所有文件,文件夹,及隐藏文件// listFilter();//文件名过滤// listFiles();//获取当前目录下File对象 File f=new File("g:/");// digui(f);//递归调用,实现查询目录下所有的文件及文件夹,及文件夹中的文件 System.out.println(digui1(8000));//递归调用 } /* * 递归调用注意两点: * 1:限定条件 * 2:要注意递归次数,尽量避免内存溢出 */ public static int digui1(int a){ if(a<=1){ return 1; }else{ return a+digui1(a-1); } } /* * 列出指定目录下文件或文件夹,包含子目录中的内容,遍历目录下所有的文件。 * 因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可 * 在列出过程中,出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身。 * 这种表现形式或者变成手法成为递归 */ public static void digui(File f){ System.out.println(f.getAbsolutePath()); File[]ff=f.listFiles(); for (int i = 0; i < ff.length; i++) { if(ff[i].isDirectory()){ digui(ff[i]);//递归调用 }else{ System.out.println(ff[i]); } } } /* * listFiles();获取File对象 */ public static void listFiles(){ File f=new File("g:/java"); File[]ff=f.listFiles(); for(File fff:ff){ System.out.println(fff.getName()+"---------length:"+fff.length()); } } /* * list(FileNameFilter filter),文件名过滤 */ public static void listFilter(){ File f=new File("g:/java"); String[]str=f.list(new FilenameFilter(){ public boolean accept(File f,String name){ return name.endsWith(".txt");//返回文件及文件夹名称以“.txt”为结尾的文件及文件夹// System.out.println(f+"---------name:"+name);//f代表文件目录,name代表文件夹名称及文件名称// return false;//返回false表示不返回// return true;//返回true表示返回 } }); for(String string:str){ System.out.println(string); } } /* * //列出根文件下所有文件,文件夹,及隐藏文件 */ public static void list(){ File f=new File("g:/java");//调用list()方法,该File对象必须封装一个目录,不能是文件,并且该目录确实存在才行 String[] str=f.list(); for (String string : str) { System.out.println(string); } } /* * File.listRoots():获取可用的文件系统根,简单来说就是获取系统的盘符 */ public static void listRoots(){ File[] f=File.listRoots(); for (File file : f) { System.out.println(file); } System.out.println(f[0]); }}