IO流——File类(文件流类)
java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流。
File类的构造方法:
1、File类创建对象:

利用前三个构造方法创建File类对象:
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
String path1 = "E:\\IO流\\java1";// 第一个参数为对象,第二个为路径
File f1 = new File(path1);
File f11 = new File(f1, "001.txt");
System.out.println(f11);
String path2 = "E:\\IO流\\java2";// 要写两个斜线,第一条把第二条转义
File f2 = new File(path2);
System.out.println(f2);
String path3 = "E:\\IO流\\java3";
String path4 = "002.txt";
File f3 = new File(path3, path4);// 将一个路径分为两部分,灵活性增强
System.out.println(f3);
}
}

2、File类的常用方法:
(1)返回路径名、文件名和文件大小
package pers.pers.file;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
String path = "E:\\IO流\\java\\0、实验\\实验二\\汇编语言标志位(CF)及一些常用指令.pdf";// 第一个参数为对象,第二个为路径
File f1 = new File(path);//创建File类的对象
String absPath=f1.getAbsolutePath();//返回绝对路径(即一个文件的全部路径)
System.out.println(absPath);
String name=f1.getName();//返回此路径下的文件或目录名称
System.out.println(name);
String stringname=f1.getPath();//将抽象路径名转换为字符串
System.out.println(stringname);
long size=f1.length();
System.out.println(size);//获取文件大小(字节),不能获取文件夹的大小
}
}

(2)创建文件:
package pers.pers.file; import java.io.File;
import java.io.IOException; public class CreatFile {
public static void main(String[] args) throws IOException {
File file = new File("E:\\IO流\\java\\IO.txt");
System.out.println(file.createNewFile());
}
}
程序运行后,在java文件夹下出现IO.txt文件。
(3)删除路径下的文件或目录:
package pers.pers.file; import java.io.File;
import java.io.IOException; public class CreatFile {
public static void main(String[] args) throws IOException {
File file = new File("E:\\IO流\\java\\IO.txt");
System.out.println(file.delete());
}
}
程序运行后java目录下的IO.txt文件消失。
(4)路径下的文件或目录是否存在
package pers.pers.file; import java.io.File;
import java.io.IOException; public class CreatFile {
public static void main(String[] args) throws IOException {
File file = new File("E:\\IO流\\java");
System.out.println(file.exists());
}
}
(5)测试路径下的文件是否为目录:
package pers.pers.file; import java.io.File;
import java.io.IOException; public class CreatFile {
public static void main(String[] args) throws IOException {
File file = new File("E:\\IO流\\java");
System.out.println(file.isDirectory());
}
}
(6)测试路径下的文件是否是一个标准文件(文件可以,文件夹不行):
package pers.pers.file; import java.io.File;
import java.io.IOException; public class CreatFile {
public static void main(String[] args) throws IOException {
File file = new File("E:\\IO流\\java\\1.txt");
System.out.println(file.isFile());
}
}
(7)创建目录:
package pers.pers.file; import java.io.File;
import java.io.IOException; public class CreatFile {
public static void main(String[] args) throws IOException {
File file = new File("E:\\IO流\\java\\2.txt");
System.out.println(file.mkdir());
}
}
3、获取路径下的文件:
package pers.pers.file;
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
File dir = new File("E:\\IO流\\java");
//返回字符串数组,获取的是目录下的当前的文件以及文件夹的名称。
String[] names = dir.list();
for(String name : names){
System.out.println(name);
}
//获取目录下当前文件以及文件对象
File[] files = dir.listFiles();
for(File file : files){
System.out.println(file);
}
}
}

4、IO流递归输出文件
package pers.zbb.File;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
File file = new File("E:\\IO流");
getFileAll(file);
}
public static void getFileAll(File file) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()) {
getFileAll(f);
} else {
System.out.println(f);
}
}
}
}
在输出路径下的文件过程中,递归调用了getFileAll方法,即自己调用自己,如果在遍历路径的时候是文件夹,则会再次调用getFileAll方法,遍历文件夹下的文件路径,输出不是文件夹的文件。

5、文件过滤器:
(1)常用方法:


实现过滤器功能需要先实现FilenameFilter接口:
package pers.zbb.Filter; import java.io.File;
import java.io.FilenameFilter; public class FilterDemo implements FilenameFilter { public boolean accept(File dir, String name) { return name.endsWith(".txt");
} }
创建测试类,调用listfile方法:
package pers.zbb.Filter;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file=new File("E:\\IO流\\java");
File[] files = file.listFiles(new FilterDemo());
for (File f : files)
System.out.println(f);
}
}

(2)抽象路径名的过滤
FileFilter类:

输出文件:
package pers.zhb; import java.io.File;
import java.io.FileFilter; public class FileFilterDemo implements FileFilter{ public boolean accept(File pathname) { return pathname.isFile();
} }

IO流——File类(文件流类)的更多相关文章
- Java IO流之普通文件流和随机读写流区别
普通文件流和随机读写流区别 普通文件流:http://blog.csdn.net/baidu_37107022/article/details/71056011 FileInputStream和Fil ...
- [C#] 常用工具类——文件操作类
/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...
- 使用Java的多线程和IO流写一个文件复制功能类
创建一个复制功能类,继承Thread类,重写run()方法,把FileInputStream和FileOutputStream输入输出流写在run()方法内.示例代码如下: import java.i ...
- Java 基础(四)| IO 流之使用文件流的正确姿势
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...
- System.IO命名空间,用于文件/流的处理。
主要类的介绍:1 Path类——静态实用类,用于处理路径名称.2 File类和FileInfo类● File —— 静态实用类,提供许多静态方法,用于移动.复制和删除文件.● FileInfo —— ...
- java IO流 (三) 节点流(或文件流)
1.FileReader/FileWriter的使用:1.1 FileReader的使用 /* 将day09下的hello.txt文件内容读入程序中,并输出到控制台 说明点: 1. read()的理解 ...
- HttpRequest获取文件流,HttpResponse输出文件流
HttpResponse输出文件: Response.Clear(); Response.ContentType = "application/octet-stream"; //通 ...
- 09、IO流—File类与IO流
目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三.节 ...
- Java总结——文件&流
最近学习了Java的输入输出,脑子里有两点乱,不过比之前的思路好像清晰了很多.脑子刚刚接收这些信息的时候,整个就是懵逼的,又是文件又是流的,文件到底干嘛的,流到底干嘛的?恩,后来,想了想,其实也不难理 ...
- .net 流(Stream) - 文件流、内存流、网络流
转自:http://www.oseye.net/user/kevin/blog/85 一.文件流 FileStream FileStream流继承与Stream类,一个FileStream类的实例实际 ...
随机推荐
- 最大层内元素和----leetcode周赛150_1002
题目描述: 给你一个二叉树的根节点 root.设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推. 请你找出层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 ...
- mysql 显示表名和表数量
SELECT count(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname'; SELECT * FROM informatio ...
- shiro@RequiresPermission的设置
public class MyShiroRealm extends AuthorizingRealm { //slf4j记录日志,可以不使用 private Logger logger = Logge ...
- ts 学习笔记 - 泛型
目录 泛型 举个栗子 泛型约束 多个参数时也可以在泛型约束中使用类型参数 泛型接口 泛型类 泛型参数的默认类型 泛型 泛型(Generics)是指在定义函数.接口或者类的时候, 不预先指定其类型,而是 ...
- 漏洞挖掘技巧之利用javascript:
好久没更新博客了,更新一波. 场景: window.location.href=”” location=”” location.href=”” window.location.* 常见地点:任何二次跳 ...
- Leetcode之深度优先搜索(DFS)专题-733. 图像渲染(Flood Fill)
Leetcode之深度优先搜索(DFS)专题-733. 图像渲染(Flood Fill) 深度优先搜索的解题详细介绍,点击 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 ...
- 2019nc#5
题号 标题 已通过代码 题解/讨论 通过率 团队的状态 A digits 2 点击查看 1017/2384 通过 B generator 1 点击查看 567/3692 通过 C generato ...
- ZOJ4027 Sequence Swapping DP
link:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4027 题意: 有一个括号序列,每个括号对应一个值,现在可以使得相 ...
- SDU暑期集训排位(8)
A. A Giveaway 签到 B. Game of XOR 做法 dp[G][L][R]表示在倒数第G代,左边的数是L,右边的数是R,下面共有多少个0和1 区间和转换成两次前缀和和一次单点查询 利 ...
- poj2186Popular Cows+tarjan缩点+建图
传送门: 题意: 给出m条关系,表示n个牛中的崇拜关系,这些关系满足传递性.问被所有牛崇拜的牛有几头: 思路: 先利用tarjan缩点,同一个点中的牛肯定就是等价的了,建立新的图,找出其中出度为0的点 ...