java之java.io.File的相关方法
java.io.File的使用。
IO原理及流的分类。
文件流:FileInputStream、FileOutputStream、FileReader、FileWriter
缓存流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
转换流:InputStreamReader、OuputStreamReader
标准输入/输出流
打印流
数据流
对象流:涉及序列化和反序列化ObjectInputStream、ObjectOutputStream
随机存取文件流:RandomAcessFile
java.io.File类:文件和目录路径名的抽象表示形式,与平台无关。
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
File对象可以作为参数传递给构造函数。
File类常用构造方法:
- public File(String pathname)。以pathname为路径创建File对象,可以是绝对路径,也可以是相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
- public File(String parent,String child);。以parent为父路径,child为子路径创建File对象。
- File的静态属性String sperator存储了当前系统的路径分隔符,在Unix中,此字段为"/",在windows中为"\\"。
访问文件名:
- getName()
- getPath()
- getAbsoluFile()
- getAbosoluPath()
- getParent()
- renameTo(File newName)
文件检测:
- exists()
- canWrite()
- canRead()
- isFile()
- isDirectory()
获取常规文件信息:
- lastModify()
- length()
文件操作相关:
- createNewFile()
- delete()
目录操作相关:
- mkDir()
- list()
- listFiles()
package anno;
import java.io.File;
public class Test1 {
public static void main(String[] args) {
File f = new File("F:\\test.txt");
System.out.println(f.getName());
//获取new File时的路径
System.out.println(f.getPath());
//获取文件的绝对路径
System.out.println(f.getAbsolutePath());
//用绝对路径包起来的File对象
System.out.println(f.getAbsoluteFile());
//当前文件的父级目录
System.out.println(f.getParent());
f.renameTo(new File("F:\\test2.txt"));
File f2 = new File("F:\\test2.txt");
System.out.println(f2.exists());
System.out.println(f2.isFile());
System.out.println(f2.isDirectory());
//返回的是字节数
System.out.println(f2.length());
File f3 = new File("F:\\test3.txt");
if(!f3.exists()) {
try {
//创建文件
f3.createNewFile();
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println("创建完毕");
}
}
//删除文件
f3.delete();
File f4 = new File("F:\\test4\\name");
//f.mkDir();创建单层目录
//创建多层目录
if(!f4.exists()) {
f4.mkdirs();
}
File f5 = new File("F:\\test4");
//返回的是字符串集合,包括文件和目录
String[] l1 = f5.list();
for(String l:l1){
System.out.println(l);
}
//返回的是个File集合,包括目录和文件
File[] l2 = f5.listFiles();
for(File l:l2){
System.out.println(l);
}
}
}
递归判断某个文件夹下的文件是文件夹还是文件。
package anno;
import java.io.File;
public class Test1 {
public static void main(String[] args) {
File f = new File("F:\\test\\");
obtainFiles(f);
}
public static void obtainFiles(File f) {
if(f.isFile()) {
System.out.println(f.getAbsolutePath()+"是文件");
}else {
System.out.println(f.getAbsolutePath()+"是文件夹");
File[] fs = f.listFiles();//获取当前目录下的文件夹或文件
if(fs!=null && fs.length>0) {
for(File ff:fs) {
obtainFiles(ff);
}
}
}
}
}
输出:
F:\test是文件夹
F:\test\file1是文件夹
F:\test\file2是文件夹
F:\test\file3是文件夹
F:\test\file4是文件夹
F:\test\test1.txt是文件
F:\test\test2.txt是文件
F:\test\test3.txt是文件
F:\test\test4.txt是文件
java之java.io.File的相关方法的更多相关文章
- Java文件与io——File类
概念: File类:表示文件和目录路径名的抽象表示形式. File类可以实现文件的创建.删除.重命名.得到路径.创建时间等等,是唯一与文件本身有关的操作类. 例: public class FileD ...
- java.io.NotSerializableException: test.io.file.Student
java.io.NotSerializableException: test.io.file.Student at java.io.ObjectOutputStream.writeObject0 ...
- IO:File类(java.io.File)
public class File extends Object implements Serializable, Comparable<File> 构造方法: public File(S ...
- java.io.file
package cn.edu.tongji.cims.wade.system; import java.io.*; public class FileOperate { pub ...
- java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)
java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...
- 【java IO File】统计项目代码总共多少行
统计项目代码总共有多少行 思想: 1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹 2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件 3.迭代方法 ...
- java.io.File类
java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...
- Java学习之IO之File类二
之前学了File便想把我学习视频的名字改了,因为文件名太长不好看,便试着写了个功能实现 package com.gh.file; import java.io.File; /** * 批量文件命名 * ...
- Java学习之IO之File类一
File的操作 package com.gh.file; import java.io.File; import java.io.IOException; /** * File操作 * @author ...
随机推荐
- .Net Core3.0 WEB API 中使用FluentValidation验证,实现批量注入
为什么要使用FluentValidation 1.在日常的开发中,需要验证参数的合理性,不紧前端需要验证传毒的参数,后端也需要验证参数 2.在领域模型中也应该验证,做好防御性的编程是一种好的习惯(其实 ...
- P2415 集合求和(一道洛谷好题鸭)(虽然可以水过,但有必研究DP)
此题坑点: 结果必须要用long long存,int存不下 如果想要像cout<<sum*pow(2,num-1)这样在输出时计算会错:long long在计算过程被隐式转换成了doubl ...
- Oracle SQL command slash
We know that there is "commit" in oracle to submit all data in the session and used very c ...
- JPA配置实体时 insertable = false, updatable = false
当使用JPA配置实体时,如果有两个属性(一个是一般属性,一个是多对一的属性)映射到数据库的同一列,就会报错. 这时,在多对一的@JoinColumn注解中添加insertable = false, u ...
- 《Windows内核安全与驱动开发》 3.2 内存与链表
<Windows内核安全与驱动开发>阅读笔记 -- 索引目录 <Windows内核安全与驱动开发> 3.2 内存与链表 1. 尝试生成一个链表头并将其初始化. 2. 尝试向内存 ...
- Spring Boot2 系列教程(三十)Spring Boot 整合 Ehcache
用惯了 Redis ,很多人已经忘记了还有另一个缓存方案 Ehcache ,是的,在 Redis 一统江湖的时代,Ehcache 渐渐有点没落了,不过,我们还是有必要了解下 Ehcache ,在有的场 ...
- Spring Boot 最简单整合Shiro+JWT方式
简介 目前RESTful大多都采用JWT来做授权校验,在Spring Boot 中可以采用Shiro和JWT来做简单的权限以及认证验证,在和Spring Boot集成的过程中碰到了不少坑.便结合自身以 ...
- 带着canvas去流浪系列之二 绘制折线图
[摘要] 用canvasAPI实现echarts简易图表 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 任务说明 使用原生canvasAPI绘制 ...
- mq解决分布式事物问题
今天只看看原理,下一节看项目怎么集成mq进行解决分布式事物. 1.什么情况下会使用到分布式事物? 举例说明:现有一个支付系统,因为项目使用的是微服务框架,有订单模块和支付模块两个模块.生产者进行订单的 ...
- Codeforce612C
You are given string s consists of opening and closing brackets of four kinds <>,{}, [], (). T ...