黑马程序员-File类文件操作,知识梳理与简单应用
来源:互联网 发布:linux tcp ip 转发 编辑:程序博客网 时间:2024/05/22 17:28
-------------------------------------Android培训 java培训 期待与您的交流!------------------------------------------
/* 文件类的初始化,此时并不是真实存在于物理地址-----抽象的1.创建 boolean creatrNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。 和输出流不一样,输出流对象已建立创建文件。如果文件已经存在,会覆盖。 boolean mkdir():创建文件夹,最多创建一个子目录 boolean mkdir():可以创建多级一个文件夹2.删除 boolean delete():删除失败返回false;如果因异常而结束的程序可能会报错 void deleteOnExit();在程序退出时删除指定文件。(包括异常退出程序)3.判断 boolean exists():文件是否存在,首要判断 boolean isFile():是否文件 boolean isDirectory():是否是目录。 boolean isHidden();是否是隐藏文件 boolean isAbsolute():是否是绝对路径4.获取信息 getName(); getPath(); 封装什么就获取什么路径 getParent();该方法返回的是绝对路径中的文件父目录。如果获取的是相对 路径的话,返回null; 如果相对路径中有上一层目录,该目录就是其返回结果。 getAbsolutePath() 获取绝对路径 long lastNodified() 返回最后一次修改文件的时间 long length() 返回long的文件大小*/import java.io.*;class FileDemo20_1 { public static void main(String[] args) throws IOException { method_1(); } public static void Method_1() throws IOException { File file =new File("dwa.txt"); sop("创建"+file.createNewFile()); sop("删除"+file.delete()); } //File封装的物理上事实上并不存在的 public static void consMethod() { File f1=new File("dwa.txt"); //将文件作为参数封装成对象 File f2=new File("f:\\se","dwa.txt"); //当目录和文件分别对应两个参数封装成参数 File dir=new File("f:\\se"); //将目录封装为File对象 File f3=new File(dir,"dwa.txt"); //将File对象作为参数 sop("f1="+f1); sop("f2="+f2); sop("f3="+f3); } public static void sop(Object o) { System.out.println(o); }}/* list() //调用list方法的file对象必须是封装了一个目录。该目录还必须存在。 返回当前目录的所有文件夹,所有文件(包括隐藏文件) listRoots() //返回系统所有的磁盘。 需求: 根据list()的重载方法返回当前目录下的所有后缀为.java的文件 */import java.io.*;class FileDemo20_5 { public static void main(String[] args) { listDemo(); } //返回你所需要的文件类型 public static void listDemo() { File dir=new File("f:\\"); String [] names=dir.list(new FilenameFilter() { public boolean accept(File dir,String name) //内部接口类 { return name.endsWith(".java"); //在指定搜索后缀名为java的文件 } }); System.out.println(names.length); for (String name:names) { System.out.println("name="+name); } }}/* 利用递归遍历 列出指定目录下文件或者文件夹,包含子目录中的内容,最后全部都是文件为止 并将其改进成类似文件系统的搜索功能的类 递归的注意事项: 1.限定递归的结束条件 2.要主要递归的次数,尽量避免内存溢出 思路: 1.利用转换流从键盘输出要搜索的文件名, 2.利用递归判断 2.1如果还是文件夹,就继续递归。 2.2如果是文件,就返回上一级目录,与该文件同一目录下的过滤。 2.3如果启动了判断程序,则结果当前的一次循环,因为当前目录已经被遍历了,避免其他文件返回上一级又遍历一次*/import java.io.*;class FileDemo20_7 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String fileName=br.readLine(); //输入你要查找的文件名字 File dir=new File("F:\\"); //搜索的盘 dirList(dir,fileName); } public static void dirList(File dir,String s) { File [] llist=dir.listFiles(); //将dir目录下的所有文件放入数组llist中 for (File i: llist) // { if (i.isDirectory()) //判断是否是目录 { dirList(i,s); //如果是则回归 }else { File [] suosou=i.getParentFile().listFiles(new FilenameFilter() { public boolean accept(File dir,String name) { return name.endsWith(s); } });//内部接口类过滤方法 for (File j:suosou) System.out.println(j); break; //因为当前目录已经被遍历了,避免其他文件返回上一级又遍历一次 } } }}/* 删除一个带内容的目录。 删除原理: 在window中,删除目录从里面往外删除的。 既然是从里往外删除,就需要用到递归。 java删除是不走回收站的!,删除需要谨慎*/import java.io.*;class RemoveDir{ public static void main(String[] args) { File dir=new File("f:\\Testdir"); removeDir(dir); } public static void removeDir(File dir) { File[] files=dir.listFiles(); for (File file:files ) { if (!file.isHidden()&&file.isDirectory()) //不能删除具有隐藏文件的文件夹 { removeDir(file); }else { System.out.println(file.toString()+"--"+file.delete()); } } System.out.println(dir.toString()+"||"+dir.delete()); //当文件夹里面的所有文件都删除后,则可以删除这个文件夹 }}/* 练习 将一个指定目录下相同文件的绝对路径,存储到一个文本文件中。 建立一个java文件列表文件。 思路: 1.对指定的目录进行递归。 2.获取递归过程所有后缀.java文件的对象。 3.将这些文件对象存储到集合中。 4.将集合中数据的绝对路径写到一个文件中*/import java.io.*;import java.util.*;class JavaFileList { public static void main(String[] args) { File dir=new File("F:\\SE"); List<File> list=new ArrayList(); //创建ArrayList集合对象 javaList(dir,list); File file=new File(dir,"java.txt"); writeToTxt(list,file.toString()); } public static void javaList(File dir,List<File> list) { File[] files=dir.listFiles(); for (File file:files) { //仍然有遍历目录的影子 if(file.isDirectory()){ javaList(file,list); }else{ if(file.getName().endsWith(".java")) //如果是java文件就添加到集合去 list.add(file); } } } public static void writeToTxt(List<File> list,String Filename) { BufferedWriter bfw=null; //通过字符流对集合进行操作并将结果写入文本中 try { bfw=new BufferedWriter(new FileWriter(Filename)); for (File file:list ) { bfw.write(file.getAbsolutePath()); //获取绝对路径 bfw.newLine(); bfw.flush(); } } catch (IOException e) { throw new RuntimeException("失败"); //出错则结束当前程序 }finally{ try { if(bfw!=null) bfw.close(); //写入成功后,要关闭流对象 } catch (IOException e) { System.out.println(e); } } }}
0 0
- 黑马程序员-File类文件操作,知识梳理与简单应用
- 黑马程序员-File类文件操作
- 黑马程序员——Java的File类的简单应用,文件的拷贝
- 黑马程序员-File类+递归的简单应用
- 黑马程序员-java.io.File类各种文件操作
- 黑马程序员-IO(File文件操作)
- 黑马程序员--文件操作(File,RandomAccessFile)
- 黑马程序员--文件操作知识总结
- 《黑马程序员》java网络编程知识梳理
- 《黑马程序员》java异常知识梳理
- 《黑马程序员》java集合知识梳理
- 黑马程序员——javaIO中File的操作与应用
- 黑马程序员-------C#中简单文件操作
- 黑马程序员-----file文件切割与合并(黑马视频)
- 黑马程序员 File文件类用途集锦
- 黑马程序员--学习笔记--IO流File文件操作
- 黑马程序员--15--File类与properties
- 黑马程序员-File及其操作
- 图的创建,深搜,广搜(基于临接表实现)
- 黑马程序员----Date Calendar使用细节
- 比特币是什么?深入浅出滴分析
- 图像超分辨技术(Image Super Resolution)
- POJ 3904(容斥原理)
- 黑马程序员-File类文件操作,知识梳理与简单应用
- 第三章第46题
- 黑马程序员-OC学习笔记-点方法、成员变量作用域以及set方法和get方法@property的综合题
- 面试题杂货铺 ( 一)
- 通过讲故事,让你明白比特币的原理及运作机制
- Ubuntu14.04+Jekyll+Github Pages搭建静态博客
- 黑马程序员——多线程
- Codeforces Round #305 (Div. 1) C(容斥原理)
- 第一章第三题