IO流(1) io, filter

来源:互联网 发布:淘宝怎么看卖家信誉 编辑:程序博客网 时间:2024/05/01 21:20


IO流:

IO流用来处理设备之间的数据传输
Java对数据的操作是通过流(系统资源)的方式
Java用于操作流的对象都在java.io包中

IO:用于处理设备上的数据技术。设备:内存,硬盘,光盘

流:系统资源,windows系统本身就可以操作设备,各种语言只是使用系统平台上的这个资源
    并对外提供了各种语言自己操作的功能,这些功能最终调用的是系统资源
   使用完资源一定要 释放。


*********File***************
将一个具体的路径封装成了File对象。可以封装存在的文件或目录,
也可以封装不存在文件或目录。

File file= new File("c:\\1.txt");
File file= = new File("c:\\","1.txt");

File f = new File("c:"+File.separator+"abc"+File.separator+"1.txt");

**创建文件可以没有扩展名

创建文件夹  boolean b =file.mkdir();
创建多级目录:file.mkdirs();

**获取文件夹下的所有文件:
File dir = new File("c:\\");
String[] names = dir.list(); // 文件包括隐藏文件,只获取名称

File[] files =dir.listFiles(); // 列举文件对象
for(File f:files){
    System.out.println(f.getName()+"..."+f.length());
}

***文件过滤器***********
获取指定目录下的指定类型文件:
list方法:
File dir= new File("c:\\");
FilenameFilter filter= new FilterBySuffix(".class");// 后缀名是class
filter = new FilterByContain("Demo"); //名称有Demo的文件
String[] files=dir.list(filter);

listFiles方法:
               FileFilter filter =  new FilterBysuffix();
  File[] files = dir.listFiles(filter);

*********递归:函数自身调用自身。函数内部又使用到了该函数功能
 什么时候使用?
  功能被重复使用,但是每次该功能使用参与运算的数据不同时,可以考虑递归方式解决。

 使用时,一定要定义条件 。
注意递归次数过多,会出现栈内存溢出。

***删除一个带内容的文件夹,必须从里往外删
public static void deleteDir(File dir){
File dir = new File("E:\\test");

File[] files= dir.listFiles();
for(File file:files){
      if(file.isDirectory())
           { deleteDir(file);
        }else{
   System.out.println(file+":"+file.delete());
 }
  }
  System.out.println(dir+":"+dir.delete());
}

io流:
** 流按操作数据分为两种:字节流与字符流
流按流向分为:输入流(读),输出流(写)

字节流的抽象基类:
 InputStream , OutStream

***** FileOutputStream ************
1,创建字节输出流对象,用于操作文件,在对象初始化时,必须明确数据存储的目的地
  输出流所关联的目的地,如果不存在,会自动创建,如果存在,则覆盖。

FileOutputStream fos = new FileOutputStream("tempfile\\fos.txt");

0 0
原创粉丝点击