java I/O框架 (二)文件操作(File)
1.介绍
java io中最常操作的就是我们电脑中的文件,将这些文件以流的形式本地读写,或者上传到网络上.java中的File类就是对这些存储于磁盘上文件的虚拟映射,这也体现了java面向对象的思想,在学习io流对文件的读写前,我们要先学习下如何通过File何操作文件;
2.构造方法
File类直接继承自Object,并且实现了Serializable和Comparable两个接口,实现Sericalizable接口表示File对象可以序列化,对象的序列化在最后我们还会提到,而实现Comparable接口,表示File对象可以用来比较排序,File的源码中重写了Comparable接口的compareTo()方法,通过获取底层操作系统,来对File路径名按字母排序;
首先我们看如何实例化一个File对象
File file=new File("C:\\Users\\Administrator\\Desktop\\a.txt");
File提供了几个构造方法,大部分大同小异,上面是我们常用的一种,通过传入文件的路径名,来实例化File对象,不过需要注意的两点是
(一)这个路径名并不需要在磁盘中真正存在,构造方法也不会检查这一点
(二)文件路径名写法取决于你的操作系统,上面例子是在Windows系统中使用两个反斜线(\\)转义字符来表示一个反斜线(\),而在Unix系统中则是这样的"/home/myfile/data/a.txt",不过经测试,单斜线这种分隔符在Windows中同样可以,大家可以自己试一下
其他的构造方法,这里我也列出一下,比较简单,不需多说
public File(String parent, String child)
public File(File parent, String child)
public File(URI uri)
3.成员方法
(1).创建功能
public boolean createNewFile() 创建新文件
public boolean mkdir() 创建单级目录
public boolean mkdirs() 创建多级目录
public static void fileTest() throws IOException {
File dir = new File("C:\\Users\\Administrator\\Desktop\\a\\b");
System.out.println(dir.mkdir()); //false mkdir()只能创建单级目录
System.out.println(dir.mkdirs()); //true mkdirs()用于创建多级目录
System.out.println(dir.mkdirs()); //false 已经存在的目录再次创建,则返回false
File file=new File("C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt");
System.out.println(file.createNewFile()); //true createNewFile()用于创建新文件,其上级路径必须存在,否则创建失败
System.out.println(file.createNewFile()); //false 文件已存在则创建失败
}
(2).删除功能
public boolean delete() 删除文件
(3).判断功能
public boolean isDirectory() 判断是否为文件夹
public boolean isFile() 判断是否为文件
public boolean exists() 判断路径是否存在
public boolean canRead() 判断文件是否可读
public boolean canWrite() 判断文件是否可写
public boolean isHidden() 判断是否是隐藏文件
(4).重命名功能
public boolean renameTo(File dest) 重命名原文件
public static void fileDeleteTest() throws IOException {
File file=new File("C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt");
boolean a= file.renameTo(new File("C:\\Users\\Administrator\\Desktop\\renameTest.txt"));
//重命名文件的同时,还可以移动文件到新的位置
System.out.print(a);
//true 返回值表示重命名成功
}
(5).基本获取功能
public String getAbsolutePath() 获取绝对路径
public String getPath() 获取全部路径
public String getName() 获取文件或目录名
public long length() 获取文件大小
public long lastModified() 获取上次修改的时间
public static void fileGetMethod() throws IOException {
File file=new File("C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt");
System.out.println(file.getAbsolutePath()); // "C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt"
System.out.println(file.getName()); // test.txt
System.out.println(file.getPath()); // "C:\\Users\\Administrator\\Desktop\\a\\b\\test.txt"
System.out.println(file.length()); //
System.out.println(new Date(file.lastModified())); // Wed Mar 15 13:58:50 GMT+08:00 2017
}
(6).高级获取功能
public String[] list() // 获取该目录下所有文件和文件夹,返回他们文件名字符串数组
public File[] listFiles() // 获取该目录下所有文件和文件夹,返回他们的文件File对象数组
java I/O框架 (二)文件操作(File)的更多相关文章
- JAVASE02-Unit06: 文件操作——File 、 文件操作—— RandomAccessFile
Unit06: 文件操作--File . 文件操作-- RandomAccessFile java.io.FileFile的每一个实例是用来表示文件系统中的一个文件或目录 package day06; ...
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
c#中@标志的作用 参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...
- Java 文件操作-File
1.File文件操作 java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的 ...
- Day05:集合操作——线性表(二) / 查找表 / 文件操作——File(一)
文件操作:https://www.cnblogs.com/wsnb8/p/11403626.html
- java I/O框架 (四)文件流
文件读取 FileInputStream FileReader 文件写入 FileOutputStream FileWriter 随机文件读写 RandomAccessFile 一.文件读取 File ...
- Java序列化与反序列化,文件操作
参考两篇博客: http://blog.csdn.net/moreevan/article/details/6697777 http://blog.csdn.net/moreevan/article/ ...
- python的文件操作file:(内置函数,如seek、truncate函数)
file打开文件有两种方式,函数用file()或者open().打开后读入文件的内容用read()函数,其读入是从文件当前指针位置开始,所以需要控制指针位置用: 一.先介绍下file读入的控制函数: ...
- C#文件操作 File(静态类)
操作某一个文件/文件夹,需要一个文件的完整路径 一.使用File的静态方法进行文件操作 1 2 3 4 5 6 7 8 9 //使用file的静态方法进行复制 File.C ...
- Hadoop学习笔记之二 文件操作
HDFS分布式文件系统:优点:支持超大文件存储.流式访问.一次写入多次读取.缺点:不适应大量小文件.不适应低时延的数据访问.不适应多用户访问任意修改文件. 1.hadoop用于大数据处理,在数据量较小 ...
随机推荐
- 00_HTML入门第一天
HTML入门 body标记的常见属性:bgcolor 设置背景颜色:text 设置文本颜色:link 设置链接颜色:vlink 设置已经访问了的链接颜色:alink 正在点击的链接颜色: meta是单 ...
- tomcat监控(二)
标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 这里介绍二种监控Tomcat的方法 使用windows版本的jdk监控 使用zabbix监控 ...
- javascript中的Date对象和Math对象
1.Date对象 1.创建Date对象 var time1=new Date() 方法1:不指定参数 var time1=new Date(); alert(time1.toLocaleString( ...
- windows下cmd常用
windows下cmd常用 shutdown -s -t 2------2秒后关机 加上-f选项意思是强制执行 shutdown -r -t 2------2秒后重启 加上-f选项意思是强制执行 lo ...
- 【linux之简介】
一.操作系统是什么 1.定义 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. ...
- Java流机制学习
基本概念 BaseStream 基础流是一个可行并行或者串行的汇聚操作的元素序列.可以进行顺序遍历,也可以进行并发遍历.通过它也可以得到一个并行流或者串行流. Stream 是Java中流的表现接口, ...
- 关于ES6 用箭头函数后的 this 指向问题
最近写完小程序后, 开始学习React, 因为有编译器, 就直接用ES6 新语法了, 中间自然离不开 () => { console.log('箭头函数的this是指向哪的问题')}; var ...
- 汇编语言2(mooc)
伪指令没有:冒号.
- 小甲鱼OD学习第11讲
这次我们的任务是破解这个需要注册的软件,如下图所示 我们这次从字符串入手,我们查找 unregistered 字符串 然后我们在如下图的字符串下断点 然后我们来到断点处,我们观察到 地址为 0040 ...
- Promise对象的简单用法
要了解一个东西,首先要从,它是什么.用来做什么以及怎么取用它这三个方面来了解. 首先,promise是什么? 我们来参考一下MDN对它的定义: Promise 对象用于一个异步操作的最终完成(或失败) ...