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类(文件流类)的更多相关文章

  1. Java IO流之普通文件流和随机读写流区别

    普通文件流和随机读写流区别 普通文件流:http://blog.csdn.net/baidu_37107022/article/details/71056011 FileInputStream和Fil ...

  2. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  3. 使用Java的多线程和IO流写一个文件复制功能类

    创建一个复制功能类,继承Thread类,重写run()方法,把FileInputStream和FileOutputStream输入输出流写在run()方法内.示例代码如下: import java.i ...

  4. Java 基础(四)| IO 流之使用文件流的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...

  5. System.IO命名空间,用于文件/流的处理。

    主要类的介绍:1  Path类——静态实用类,用于处理路径名称.2 File类和FileInfo类● File —— 静态实用类,提供许多静态方法,用于移动.复制和删除文件.● FileInfo —— ...

  6. java IO流 (三) 节点流(或文件流)

    1.FileReader/FileWriter的使用:1.1 FileReader的使用 /* 将day09下的hello.txt文件内容读入程序中,并输出到控制台 说明点: 1. read()的理解 ...

  7. HttpRequest获取文件流,HttpResponse输出文件流

    HttpResponse输出文件: Response.Clear(); Response.ContentType = "application/octet-stream"; //通 ...

  8. 09、IO流—File类与IO流

    目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三.节 ...

  9. Java总结——文件&流

    最近学习了Java的输入输出,脑子里有两点乱,不过比之前的思路好像清晰了很多.脑子刚刚接收这些信息的时候,整个就是懵逼的,又是文件又是流的,文件到底干嘛的,流到底干嘛的?恩,后来,想了想,其实也不难理 ...

  10. .net 流(Stream) - 文件流、内存流、网络流

    转自:http://www.oseye.net/user/kevin/blog/85 一.文件流 FileStream FileStream流继承与Stream类,一个FileStream类的实例实际 ...

随机推荐

  1. NFS Debian 服务器,CentOS 客户端

    0x00 事件 最近买了一台 500G 储存的 VPS,但是与国内的连接.下载速度都比较差,于是想了个「曲线救国」的方式. 另外有一台 GIA 与 VPS-500G 通信比较理想,同时 GIA 与国内 ...

  2. Android UI控件常用库汇总

    现在App的开发已经是非常成熟,涌现了一大批开源的工具.这些项目能够提高我们的搬砖效率.以下是一些在开发中比较常使用的控件和库. ListView WaveSwipeRefreshLayout 水滴效 ...

  3. 微服务架构 - 网关 Spring Cloud Gateway

    Spring Cloud Gateway 工作原理 客户端向 Spring Cloud Gateway 发出请求,如果请求与网关程序定义的路由匹配,则将其发送到网关 Web 处理程序,此处理程序运行特 ...

  4. 版本管理·玩转git(快速入门git)

    如果你用过Word文档写过文章,那么你一定会有这样的经历. 我觉得某一段或者某一句写得不够好,但是,删掉之后我可能会后悔把它删掉了,进而又想把删掉的段落找回来,这时,你想到了一个好办法,将每次的修改都 ...

  5. python 05 字典

    [TOC] 字典——dict { } 字典是无序,可变的数据类型. 字典:用于存储数据,存储大量数据,字典要比列表快:将数据和数据之间进行关联. 1. 定义:  dic = {键:值,键:值}  #每 ...

  6. win8,右键添加notepad++

    1.下载并安装notepad++ 2.创建txt文件test1.txt,内容如下: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\ ...

  7. Badboy - variable setter

    参考: http://leafwf.blog.51cto.com/872759/1117646 http://www.51testing.com/html/00/130600-1367743.html ...

  8. HDU2222Keywords Search AC_自动机

    http://blog.csdn.net/niushuai666/article/details/7002823 #include <iostream> #include <cstd ...

  9. CodeForces 804C Ice cream coloring

    Ice cream coloring 题解: 这个题目中最关键的一句话是, 把任意一种类型的冰激凌所在的所有节点拿下来之后,这些节点是一个连通图(树). 所以就不会存在多个set+起来之后是一个新的完 ...

  10. Mysql的事务及行级锁

    转自:http://www.cnblogs.com/edwinchen/p/4171866.html 以签到为例,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当初表设计的时候, ...