zoukankan      html  css  js  c++  java
  • 01 IO流(一)—— 流的概念、File类

    1 流的概念理解(重要)

    理解流的概念非常重要。

    流,就是程序到数据源或目的地的一个通道。

    我们把这个通道实例化得到一个具体的流,相当于一个数据传输工具,它可以在程序与资源之间进行数据交换。

    换言之,流就是一个通道,一个工具,在程序与数据源或目的地之间起到桥梁作用。

    工具怎么体现呢?体现在流的方法上,比如read()方法,流这个工具从源读入数据。flush()方法,流将读到自己缓冲区的数据,写到目的地去。

    2 File中的常量

    static String separator不同的操作系统中,文件路径的分隔符有所不同,separator提供路径的分隔符的动态分隔
    例如:D:javajdk
    在java中可表示为:String path = "D:\java\jdk"; (使用\是因为java的转义机制,在java字符串中\即为)或D:/java/jdk
    推荐写为:String path = "D:"+File.separator+"java"+File.separator+"jdk";

    3 File的构造方法

    3.1 File(String)

    传入文件路径字符串,返回File实例。

    3.2 File(String parent,String child)

    将字符串1与字符串2拼接为一个新路径字符串传入,返回新的File实例

    3.3 File(File parent,String child)

    将一个FIle对象parent的路径与字符串child拼接成一个新路径字符串传入,返回一个File实例

    3.4 FIle(URL url)

    不解

    4 相对路径与绝对路径

    绝对路径:从盘符开始的路径,如:D:javajdk

    相对路径:从当前路径开始的路径

    5 FIle类的常用方法

    5.1 getName()

    返回File对象的文件名,包括后缀。如文件的路径是:D:a.txt 文件名则为a.txt

    5.2 getPath()

    返回文件的路径

    5.3 getAbsolutePath()

    返回文件的绝对路径

    5.3 String getParent()

    返回当前对象的路径名的上一层路径,如果没有,返回null

    5.4 File getParentFile() 

    返回父对象

    5.5 boolean exists

    是否存在

    5.6 isFile()

    是文件吗

    5.7 isDirectory()

    是文件夹吗

    5.8 int length() 

    返回文件或文件夹的大小

    5.9 boolean createNewFile()

    根据new File时传入的路径创建新文件或文件夹

    如果存在,返回false

    操作系统的设备名,不能作为文件名来创建,如:con con3等等

    5.10 boolean delete

    从磁盘中删除文件,且只能删除已经存在的文件

    5.11 boolean mkdir

    必须在有父目录的前提下创建文件夹

    如同名文件夹已存在,创建失败

    5.12 boolean mkdirs

    无父目录也可以创建文件夹,会带着父目录一起创建

    如同名文件夹已存在,创建失败

    5.13 String[] list

    返回一个包含下级目录及文件的String数组,只是下级。

    5.14 File[] listFiles

    返回一个包含下级目录及文件的File数组,只是下级。

    5.15 FIle[] listRoots

     列出系统中可用的根目录(可由任意File对象调用),如你的电脑里只有c盘D盘,则返回的File[]数组中就包含两个File对象,它们的绝对地址就是C:与D:

    附带代码

    import java.io.File;
    public class FileTest
    {
    	public static void main(String[] args){
    		//使用separator写一个路径
    		String path = "D:"+File.separator+"java"+File.separator+"jdk1.8";
    		System.out.println(path);
    		
    		//构造器
    		File f = new File("E:\heyuhong\day4-File\bky.png");
    		File f1 = new File("E:\heyuhong","day4-File\bky.png");
    		File f2 = new File("www.baidu.com");
    		System.out.println(f.length());
    		System.out.println(f1.length());
    		System.out.println(f2.length());
    
    		//相对路径
    		File f3 = new File("bky.png");//当前目录下的bky.png文件
    		System.out.println(f3.length());
    		File f4 = new File("..\bky.png");//上一级目录下的bky.png文件
    		System.out.println(f4.length());
    		System.out.println("--------------------");
    
    		//File中的方法
    			//返回文件名.后缀
    		System.out.println(f3.getName());
    			//返回File对象的路径
    		System.out.println(f3.getPath());
    			//返回绝对路径
    		System.out.println(f4.getAbsolutePath());
    			//返回父项的路径字符串
    		System.out.println(f1.getParent());
    			//判断是否是文件
    		System.out.println(f1.isFile());
    			//判断是否是文件夹
    		System.out.println(f1.isDirectory());
    			//判断是否存在
    		System.out.println(f1.exists());
    			//判断文件或文件夹的长度
    				//判断文件的长度
    		System.out.println(f1.length());
    				//判断文件夹的长度
    		System.out.println(f1.getParentFile().length());
    			//创建新文件
    		File f5 = new File("D:/a.txt");
    		try{
    		System.out.println(f5.createNewFile());
    		}catch(Exception e){
    			System.err.print("创建文件出错");
    		}
    			//删除文件
    		System.out.println(f5.delete());
    		System.out.println("-----------------");
    
    		//File中的方法
    			//mkdir 必须在有父目录的前提下创建文件夹
    		File f6 = new File("D:/mkdirTest");
    		System.out.println(f6.mkdir());
    			//mkdirs 无父目录也可以创建文件夹
    		File f7 = new File("D:/mkdirsTest");
    		System.out.println(f7.mkdirs());
    			//list 下级文件名称的String数组
    		String[] mkList = f7.list();
    		for(String s : mkList){
    			System.out.print(s+" ");
    		}
    		System.out.println();
    			//listFiles 下级文件的File数组
    		File[] fileList = f7.listFiles();
    		System.out.println(fileList.length);
    			//listRoots 返回根目录盘符
    		File[] fileRoots = f7.listRoots();
    		for(File fr : fileRoots){
    		System.out.println(fr.getAbsolutePath());
    		}
    	}		
    	
    }
    

      

  • 相关阅读:
    支付宝开发平台之第三方授权登录与获取用户信息
    Struts2之访问路径
    Struts2之命名空间与Action的三种创建方式
    vs和vim
    linux下的各个目录(待填)
    linux-CentOS初学terminal命令(3)rm、chmod、mkdir、who、w、id、systemctl、
    gcc和vs在c的一些区别
    利用putty在window下控制linux的terminal、ftp传输
    linux-CentOS初学terminal命令(2)vi、gcc、g++、./、mv、cp、ifconfig
    linux初学terminal命令(1)ls、cd、su、man、pwd、useradd、passwd、cat、Ctrl+C、Ctrl+Z、Ctrl+L
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/11904462.html
Copyright © 2011-2022 走看看