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类的实例实际 ...
随机推荐
- wordpress搬家 更换域名
结论:wordpress网站文件夹是和域名相关联的 wordpress,备份了数据库 然后用另一个新域名新建站,直接从wordpress官网直接下载的网站压缩包,没有用之前的网站文件夹. 然后把原来的 ...
- C#自动计算字符串公式的四种方法
原地址:https://blog.csdn.net/ifu25/article/details/53292134 四种方式 简单粗暴:利用SQL数据库计算 功能强大:利用JavaScript计算 看不 ...
- Python模块之ncclient
一.简介 此模块是是netconf协议的客户端,可与netconf服务端进行交互 二.实验环境 1.操作系统:win10 2.python版本:python3.6.6 3.ncclient模块版本:0 ...
- 基于sparksql collect_list的udf定义踩坑
多条collect_list,然后将collect_list的结果concat起来,最初使用的是concat_ws(),但是发现超过4个collect_list就会报错, select concat_ ...
- sqoop与PG库导入导出数据
导入数据到Hive sqoop import --connect jdbc:postgresql://172.66.6.666/radar5g4h --username postgres --pass ...
- keras+ ctpn 原理流程图
- 9407web常用符号
常用符号 转载自 http://www.fhdq.net/ ❤❥웃유♋☮✌☏☢☠✔☑♚▲♪✈✞÷↑↓◆◇⊙■□△▽¿─│♥❣♂♀☿Ⓐ✍✉☣☤✘☒♛▼♫⌘☪≍←→◈◎☉★☆⊿※¡━┃♡ღツ☼☁❅♒✎©® ...
- k8s西游记 - 切换网络插件IP池
前言 最近在另一个k8s集群中,搭建了kong网关,在配置OIDC插件时,希望使用Memcahe代替Cookie来存储会话信息,于是把部署在同一局域网Memcahe的内网IP,比如:192.168.1 ...
- Javaweb Cookie机制
Javaweb Cookie机制 一.前言 HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的,即使 HTTP1.1 支持持续连 ...
- CAD数据分块,偏移校准,加载到百度地图、高德地图、谷歌等地图上
前面分享过一篇如何将CAD海量数据显示在百度地图上(百度地图Canvas实现十万CAD数据秒级加载),但是很多开发者在CAD数据提取时遇到了问题,所以接下来的文章将介绍如何将CAD数据提取. 准备软件 ...