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用于大数据处理,在数据量较小 ...
随机推荐
- 锋利的jQuery笔记
首先分清jQuery对象和DOM对象,这两者可相互转化,如: var $cr=$("#cr"); //jquery对象 var cr=$cr[0] ; //DOM对象 var cr ...
- Python selenium 一个节点两个关联input
HTML代码: 一个节点两个关联input 多出现于密码框 先需要模拟点击进入第一个input,才能激活第二个input. 代码: driver.find_element_by_name('Text ...
- Ajax异步信息抓取方式
淘女郎模特信息抓取教程 源码地址: cnsimo/mmtao 网址:https://0x9.me/xrh6z 判断一个页面是不是Ajax加载的方法: 查看网页源代码,查找网页中加载的数据信息,如果 ...
- Electron 打包Mac安装包代码签名问题解决方案Could not get code signature for running application
最近一直在做electron应用的打包,集成mac版本的自动更新时出现了问题. Error: Could not get code signature for running application ...
- python3中,os.path模块下常用的用法总结
abspath basename dirname exists getatime getctime getmtime getsize isabs isdir isfile islink ismount ...
- ABP官方文档翻译 3.5 规约
规约 介绍 示例 创建规范类 使用仓储规约 组合规约 讨论 什么时候使用? 什么时候不使用? 介绍 规约模式是一种特别的软件设计模式,通过使用布尔逻辑将业务规则链接起来重新调配业务规则.(维基百科). ...
- 【OS】NMON的简介和使用
[OS]NMON的简介和使用 目前NMON已开源,以sourceforge为根据地,网址是http://nmon.sourceforge.net. 1. 目的 本文介绍操作系统监控工具Nmon的概念. ...
- salesforce零基础学习(八十六)Ajax Toolkit (VF页面中使用及javascript action使用)
Ajax Toolkit 参考文档:https://resources.docs.salesforce.com/212/latest/en-us/sfdc/pdf/apex_ajax.pdf 在项目中 ...
- CF798E. Mike and code of a permutation [拓扑排序 线段树]
CF798E. Mike and code of a permutation 题意: 排列p,编码了一个序列a.对于每个i,找到第一个\(p_j > p_i\)并且未被标记的j,标记这个j并\( ...
- BZOJ 3262: 陌上花开 [CDQ分治 三维偏序]
Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当 ...