IO流技术:开篇概述、File对象构建与相关方法的使用
2019-05-16 14:14
162 查看
本篇包含开篇知识储备,API使用规则、如何构建File对象、以及相关方法的使用。会通过Java编码分析。
API | 说明 |
---|---|
pathSeparator 、separator | 路径 、路径分隔符 |
File(String parent,String child)、File(File parent,String child) 、File(String name) | 构造器、没有盘符以user.dir作为先对目录 |
getName()、getPath()、getAbsolutePath()、getParent() | 文件名、路径名 |
exists()、isFile()、isDirectory() | 判断状态 |
length() | 文件长度 |
createNewFile()、delete() | 创建新文件、删除文件 |
一、开篇
IO概述:
即输入输出流,流动的即是数据,以二进制的形式呈现,即字节流。人对字符更敏感,我们也可操作字符流。字符流底层还是字节流,自动搜索了我们的码表。
推荐组件:
CommonsIO
数据源:
就是存储数据的地方,例如网站、服务器、数据库。我们操作的是存储数据的文件。
其他:
Java对IO流进行了大量的封装,有很多对应的类和接口(进行了抽象)可直接使用。
核心的5个类和3个接口
序列化:
简单来说就是:对象存储在文件中的过程,而还原对象
又称之为反序列化。
IO流的方向:
输入流-程序-输出流
1、节点流:可以直接从数据源或目的地读写数据
2、包装流(处理流):对流进行封装,简化了操作,能提高性能。
包装流可以对其他流进行处理。
二、API使用规则以及如何构建File对象
1、File类代表的是一个抽象的表示形式。是将Java和文件建立起了一个联系。
2、查看API文档时,发现有的类没有构造器:
①静态工具类,例如 Math.不需要新建一个对象就可以使用
②静态方法去返回,例如Runtime
1、创建File对象的三种方法
代码
public class FileDemo1 { public static void main(String[] args){ String path = "E:/Java/IO_Study01/src/ERT.jpg"; //构建File 对象 //方法1 File src = new File(path); //丢一个名称 System.out.println(src.length()); //打印图片大小(Kb) //方法2 src = new File("E:/Java/IO_Study01/src","ERT.jpg"); //父子构建 src = new File("E:/Java/IO_Study01","/src/ERT.jpg"); //能够拼出来就OK System.out.println(src.length()); //方法3 src = new File(new File("E:/Java/IO_Study01/src"),"ERT.jpg"); //父对象,子名称 System.out.println(src.length()); } }
结果
2、相对路径与绝对路径
简单讲,区别在于有无盘符
代码
public class FileDemo2 { public static void main(String[] args){ String path = "E:/Java/IO_Study01/src/ERT.jpg"; //绝对路径 File src = new File(path); System.out.println(src.getAbsolutePath()); //相对路径:相对于工程路径 System.out.println(System.getProperty("user.dir")); //打印工程路径 src = new File("ERT.jpg"); System.out.println(src.getAbsolutePath()); } }
注意:File可以构建一个文件,也可以构建一个不存在的路径
结果
3、名称分隔符用 separator
代码
public class PathDemo01 { public static void main(String[] args){ String path = "E:\\Java\\IO_Study01\\src\\ERT.jpg"; System.out.println(File.separatorChar); //1、建议用 / 不用转意,可以跨平台 String path1 = "E:/Java/IO_Study01/src/ERT.jpg"; //2、常量拼接,动态 String path2 = "E:"+File.separatorChar+"Java"+File.separatorChar +"IO_Study01"+File.separatorChar+"src"+File.separatorChar+"ERT.jpg"; System.out.println(path); System.out.println(path1); System.out.println(path2); } }
结果
三、获取名称或路径
- getName() 名称
- getPath() 相对或绝对路径
- getAbsolutePath() 绝对路径
- getParent() 上一路径
代码
public class FileDemo3 { public static void main(String[] args){ File src = new File("src/ERT.jpg"); //基本信息 System.out.println("名称:"+src.getName()); System.out.println("路径:"+src.getPath()); System.out.println("绝对路径:"+src.getAbsolutePath()); System.out.println("父路径:"+src.getParent()); System.out.println("父对象:"+src.getParentFile().getName()); } }
结果
四、文件状态
1、判断是否存在:exists()
2、若存在:
- 文件判断:isFile()
- 文件夹/目录判断:isDirectory()
代码
public class FileDemo4 { public static void main(String[] args){ File src = new File("src/ERT.jpg"); System.out.println("是否存在:"+src.exists()); System.out.println("是否是文件:"+src.isFile()); System.out.println("是否是文件夹:"+src.isDirectory()); System.out.println("------------"); src = new File("aaa/ERT.jpg"); System.out.println("是否存在:"+src.exists()); System.out.println("是否是文件:"+src.isFile()); System.out.println("是否是文件夹:"+src.isDirectory()); } }
结果
五、其他信息
1、长度:length()
是字节数 (确保是文件)
代码
public class FileDemo5 { public static void main(String[] args){ File src = new File("E:/Java/IO_Study01/src/ERT.jpg"); System.out.println("长度:"+src.length()); src = new File("E:/Java/IO_Study01"); System.out.println("长度:"+src.length()); src = new File("E:/Java"); System.out.println("长度:"+src.length()); } }
注意:返回目录长度时,一般为0或者4096
结果
2、createNewFile() 和 delete() 的使用
代码
public class FileDemo6 { public static void main(String[] args) throws Exception{ File src = new File("E:/Java/IO_Study01/src/test.txt"); //创建空文件 boolean flag = src.createNewFile(); System.out.println("是否创建成功:"+flag); //删除已存在的文件 flag = src.delete(); System.out.println("是否删除成功:"+flag); } }
注意:操作跟系统打交道,重复名(跟关键字相同)不能创建成功,比如;con com3 …
结果
相关文章推荐
- File对象相关方法使用简单例子
- PHP高级对象构建——使用创建方法
- 常见对象_Random类的概述和方法使用
- 使用FileReader对象的readAsDataURL方法来读取图像文件
- Java中IO流的使用方法之File
- 反射机制的概述和字节码对象的获取方式 JavaBean的概述&BeanUtils的使用 反射操作构造方法、成员方法、成员属性
- IO流中File对象常用方法
- c#实现数据同步的方法(使用文件监控对象filesystemwatcher)
- 使用ASM对JAVA class file进行修改的技术 -- 添加类方法
- JAVA-IO流中FileReader和FileWriter方法的使用
- Java基础回顾--java IO流相关的类的分类和总结 3 【Java File类中list()、listFiles()的使用及区别,认识和使用匿名内部类】
- 使用FileReader对象的readAsDataURL方法来读取图像文件
- 反射机制的概述和字节码对象的获取,通过反射获取构造方法并使用;通过反射获取成员变量并使用;通过反射获取私有成员变量并使用;通过反射获取成员方法并使用
- File对象概述及常用方法
- IO流(File概述)-(File对象功能-创建和删除)-(File对象功能-判断)-(File对象功能-获取)
- HTML使用FileReader对象的readAsDataURL()方法实现图片的上传预览效果
- Docker 安装 Redis 方法一、通过 Dockerfile 构建 创建Dockerfile 首先,创建目录redis,用于存放后面的相关东西。 runoob@runoob:~$ mkdir -
- 常见对象_Math类概述和方法使用
- NodeJS学习系列课程笔记(NodeJS 全局对象相关使用方法)