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用于大数据处理,在数据量较小 ...
随机推荐
- hdu3507 Print Article
Print Article Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) P ...
- 树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)
本文由树莓派爱好者ITJoker 编辑,转载请注明出处.本人也有新浪博客同样是树莓派爱好者ITJoker 所需材料:树莓派2B或者2B以上,L2985n驱动板,若干排线,电池及电池盒,usb无线网卡( ...
- 序列化日期(yyyy-MM-dd hh:mm:ss)
var getDateFormat = function() { var _date = new Date(); //实例化一个Date对象 var _complete = function(valu ...
- spring mvc 中自定义404页面在IE中无法显示favicon.ico问题的解决方法。
此处用的是jsp,控制层用的是ModelAndView, 具体解决方法如下: @RequestMapping(value = "notfound", method = Reques ...
- 洛谷 [P1314] 聪明的质检员(NOIP2011 D2T2)
###一道二分答案加前缀和### 题目中已经暗示的很明显了 "尽可能靠近" " 最小值" 本题的主要坑点在于 long long 的使用 ##abs函数不支持l ...
- BZOJ 1923: [Sdoi2010]外星千足虫 [高斯消元XOR]
1923: [Sdoi2010]外星千足虫 对于 100%的数据,满足 N≤1,000,M≤2,000. 裸高斯消元解异或方程组 给定方程顺序要求用从上到下最少的方程,那么找主元时记录一下最远找到哪个 ...
- 万类之父——Object
jdk1.8.0_144 Object类作为Java中的顶级类,位于java.lang包中.所有的类直接或者间接都继承自它.所以Object类中的方法在所有类中都可以直接调用.在深入介绍它的API时, ...
- springIOC、AOP的一些注解
springIOC.AOP的一些注解(使用这些注解之前要导入spring框架的一些依赖): 1.注入IOC容器 @Compontent:使用注解的方式添加到ioc容器需要在配置文件 ...
- putty,xshell以及密钥认证:linux学习第二篇
1. Putty下载 官网:https://www.chiark.greenend.org 下载putty的zip包 2. Putty使用 2000为可查看的文件行数,建议设置为2000 ...
- 论 Java 中的内存分配
Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静 ...