• IO(一)



    IO流

    IO流是用来处理设备之间的数据传输,java对数据操作是通过流的方式,所有的流都定义在java.io包里。


    File

    File类是IO包中唯一代表磁盘文件本身的对象。File能够完成创建、删除文件,重命名文件,判断文件的读写权限及文件是否存在,设置和查询文件的最近修改时间等操作。


    递归

    就函数自己调用自己。

    递归要注意:递归要有条件,不然是死循环。

    大量的递归是很占内存的,因为要等递归函数结束调用函数才能结束。


    用递归算法列出文件夹下的文件,包括子文件夹子


    import java.io.File;
    import java.io.IOException;
    public class Demo
    {
    	public static void main(String[] args)
    	{
    		
    		File f=new File("F:\JavaCode");
    		myList(f,0);
    	}
    	public static String getKong(int level)           //为了使打印美观,在子文件夹前缩进
    	{
    		StringBuilder sb=new StringBuilder();
    		for(int i=0;i<=level;i++)
    		{
    			sb.append("  ");
    		}
    		return sb.toString();
    	}
    	
    	public static void myList(File f,int level)     //每递归一次level将自增1,使缩进空增加
    	{
    		level++;
    		System.out.println(getKong(level)+f);
    		if(f.isDirectory())
    		{
    			File[] f1=f.listFiles();
    			for(File f2:f1)                    //遍历数组
    			{
    				myList(f2,level);              //递归
    			}
    		}
    	}
    }




    FilenameFilter

    文件过滤器,它是一个接口。可以将想要的文件特性定义成一个类然后实现这个接口。


    import java.io.File;
    import java.io.FilenameFilter;
    class FilenameFilterDemo
    {
    	public static void main(String[] args)
    	{
    		File f=new File("F:\JavaCode");
    		File[] f1=f.listFiles(new MyFilter(".java"));
    		for(File f2:f1)
    		{
    			System.out.println(f2);
    		}
    	}
    }
    class MyFilter implements FilenameFilter               
    {
    	private String name;							//将需要的文件后缀名存着
    	MyFilter(String name)
    	{
    	this.name=name;
    	}
    	public boolean accept(File dir,String name)
    	{
    		return name.endsWith(this.name);            //比较文件尾字符串是否相同
    	}
    }





    流动方向有输入流和输出流

    处理数据的单位有字节流和字符流

    功能不同有节点流和处理流

    节点流:直接操作目标设备

    处理流:通过操作节点滚从而间接完成输入或输出功能的流。其实就是一个装饰类


    所有流都继承

    InputStream OutputStream

    Writer          Reader


  • 相关阅读:
    上帝永远不会问你的十件事
    discuz x1.5 showmessage函数和showDialog函数解析
    人生,没有那么简单…
    Proxy代理对象是如何调用invoke()方法的.
    实现简单的AOP前置后置增强
    浅谈设计模式visitor访问者模式
    了解jsp,这一篇就够了.
    jsp之el表达式jstl标签
    orale数据库.实例.表空间.用户.表
    题解 UVa10892
  • 原文地址:https://www.cnblogs.com/lisisong/p/5122621.html
Copyright © 2020-2023  润新知