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类的实例实际 ...
随机推荐
- Mysql优化(出自官方文档) - 第八篇(索引优化系列)
目录 Mysql优化(出自官方文档) - 第八篇(索引优化系列) Optimization and Indexes 1 Foreign Key Optimization 2 Column Indexe ...
- PostgreSQL数据库查询最近几天的数据
pgsql语法类似mysql ,下面总结几个pgsql工作会用到的求时间的语句 1.当前时间向前推一天\ SELECT current_timestamp - interval '1 day' 例: ...
- cython 第一次接触
https://www.cnblogs.com/kaituorensheng/p/4452881.html
- Android P不能使用http
三种方法解决Android P(安卓9.0)联网问题: 1.最简单的方法就是改用https,但很多的http接口都要一一改(非全局接口可以忽略方法1). 2.target降低至27,target27之 ...
- unity shader之预备知识
1.渲染流水线 任务:从一个三维场景出发,生成(或者渲染)一张二维图像.即:计算机需要从一系列的定点出数据,纹理等信息出发,把这些信息最终转换程一张人眼可以看到的图像.而这个工作通常是由CPU和GPU ...
- zookeeper快速上手
## # zookeeper的基本功能和应用场景 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件. ...
- JavaScript String 小球重力弹回
JavaScript String 小球重力弹回 <!DOCTYPE html> <html lang="en"> <head> <met ...
- 基于Taro与typescript开发的网易云音乐小程序(持续更新)
基于Taro与网易云音乐api开发,技术栈主要是:typescript+taro+taro-ui+redux,目前主要是着重小程序端的展示,主要也是借此项目强化下上述几个技术栈的使用,通过这个项目也可 ...
- vscode同步插件 sync(gist,token)
网上很多同步教程,按照教程操作upload时一直报错:sync:invalid gist ID 查找问题很久才知道 gist和token是两个东西.下面重新梳理下: 一.下载安装插件 Setting ...
- Python连载35-死锁问题以及解决方式
一.死锁问题 例子 import threading import time lock_1 = threading.Lock() lock_2 = threading.Lock() def f ...