1 流的概念理解(重要)

理解流的概念非常重要。

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

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

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

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

2 File中的常量

static String separator不同的操作系统中,文件路径的分隔符有所不同,separator提供路径的分隔符的动态分隔
例如:D:\java\jdk
在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:\java\jdk

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

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());
}
} }

  

01 IO流(一)—— 流的概念、File类的更多相关文章

  1. 09、IO流—File类与IO流

    目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三.节 ...

  2. 总结JAVA----IO流中的File类

    对于IO流中File类的总结 File类的基本概念 File类只能用于完成对于文件属性(是否存在.可读性.长度)的一些操作,不能用于文件的访问. File类的对象 File类的对象存储的是文件的绝对路 ...

  3. 关于Java的File类、字节流和字符流

    一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还 ...

  4. [01] File类

    1.IO概念 File类是java.io包中一个很重要的类,这里的io,就是指 Input/Output,所以在看File类之前,先提一下所谓的IO概念. I/O(Input/Output),即输入/ ...

  5. java.io.File类

    java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...

  6. File类的基本概念与递归

    一.File类 1.概念 File类:是文件和目录路径名的抽象表示形式. 即,Java中把文件或者目录(文件夹)都封装成File对象.也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这 ...

  7. C#文件操作基础之File类和FileInfo类

    文件和I/O流的差异: 文件是一些具有永久存储及特定顺序的字节组成的一个有序的.具有名称的集合. 因此对于文件,我们经常想到文件夹路径,磁盘存储,文件和文件夹名等方面. I/O流提供一种后备存储写入字 ...

  8. File 类 操作实例

    File 操作 <介绍> 尽管java.io定义的大多数类是实行流式操作的,File类不是.它直接处理文件和文件系统.也就是说,File类没有指定信息怎样从文件读取或向文件存储:它描述了文 ...

  9. 【Java】File类

    File类 File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) File类声明在java.io包下 File类中涉及到关于文件或文件目录的创建.删除.重命名.修改时间.文件大小等方法,并 ...

  10. JAVA实现File类中的遍历操作并输出内容

    package shb.java.testIo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

随机推荐

  1. Prometheus初体验(三)

    一.安装部署 Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖.用户只需要下载对应平台的二进制包,解压并且添加基本的配置即可正常启动Prometheus Server ...

  2. pipres生成当前项目所有的依赖文件

    对于使用虚拟环境的Python程序,直接pip freeze即可.但是对于没有使用虚拟环境,再使用pip freeze就不行了,因为它会把系统所有的包都导出. 所以使用第三方库pipreqs 安装 p ...

  3. 像母语者一样说美语 How to Improve Spoken American English - Sound like a Native Speaker

    视频讲解: 视频详情见:https://www.bilibili.com/video/av75075387/ 总结分析: 001 要点总结: 1. 本富兰克林方法: 要你写下一切听到的东西 2. 辅音 ...

  4. 微信小程序实现左侧滑栏

    前言 一直想给项目中的小程序设置侧滑栏,将退出按钮放到侧滑中,但是小程序没有提供相应的控件和API,因此只能自己手动实现,网上很多大神造的轮子很不错,本文就在是站在巨人的肩膀上实现. 效果 先看看效果 ...

  5. qt creator中常用快捷键

    激活欢迎模式 Ctrl + 1 激活编辑模式 Ctrl + 2 激活调试模式 Ctrl + 3 激活项目模式 Ctrl + 4 激活帮助模式 Ctrl + 5 激活输出模式 Ctrl + 6 查找当前 ...

  6. CENTOS7开启SSH服务

    CENTOS7开启SSH服务 CENTOS7开启SSH服务以后,XSHELL,WINSCP才能成功连接CENTOS7. 开启ssh服务需要root权限,先用root账户登陆. 安装SSH: yum i ...

  7. 7年.NET面试Java的尴尬历程

    先简单介绍LZ 现如今的情况,LZ 1992年出生,2012年实习,大专学渣一枚,实习期直接被校企合作直招到公司做.NET开发,现如今在某三线城市做后端技术经理,7年开发经验(5年.Net,2年.NE ...

  8. STM32 软件按键消抖

    引言 通常按键所用的开关都是机械弹性开关,当机械触点断开.闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖 ...

  9. Android 自定义View 四个构造函数详解

    https://blog.csdn.net/zhao123h/article/details/52210732 在开发android开发过程中,很多人都会遇到自定义view,一般都需要继承自View类 ...

  10. MacOS 安装配置 Laravel

    简单介绍: Laravel是一个用PHP编写的免费开源Web框架.它是由Taylor Otwell创作的,遵循MVC开发方法. 截至2015年3月,Laravel被认为是最流行的基于PHP的框架之一. ...