########################################
IO流:
    IO:用于处理设备上的数据的技术。设备:内存,硬盘,光盘
    流:系统资源,Windows系统本身就可以操作的设备。各种语言只是使用系统平台的这个资源。并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资源,使用完资源一定要记住:释放。

File类直接有了分隔符:File.separator
"c:"+File.separator+"a.txt"

################################################文件基本方法

File file = new File("F:"+File.separator+"eclipse_javaCode"+File.separator+
"day21"+File.separator+"src"+File.separator+"day21"+File.separator+
"shangxin.txt");
String file_name = file.getName(); //获取文件名
System.out.println(file_name); //shangxin.txt
long file_size = file.length();
System.out.println(file_size);
String file_parent_path = file.getParent(); //获取父目录的路径
System.out.println(file_parent_path); ###########
String file_path = file.getAbsolutePath(); //获取绝对路径
System.out.println(file_path); //F:\eclipse_javaCode\day21\src\day21\shangxin.txt long lc = file.lastModified(); //获取最后一次修改的时间
Date date = new Date();
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
String lc_str = df.format(date);
System.out.println(lc_str); //2018年2月23日 星期五 下午09时59分40秒 CST
boolean b = file.isHidden(); //判断文件是否隐藏
System.out.println(b); b = file.createNewFile(); //创建文件,文件存在创建失败,没有该盘创建失败
System.out.println(b); b = file.delete(); //删除文件,不走回收站 file = new File("ai"+File.separator+"xdaq");
b = file.mkdirs(); //创建多级目录
System.out.println(b); b = file.delete(); //删除文件夹要注意,文件夹里面必须保证文件夹里面没有东西。
System.out.println(b); file = new File("e:");
long space = file.getFreeSpace(); //获取剩余空间大小
System.out.println(space);

##################################获取文件里面的文件名称列表和文件对象

File dir = new File("e:");
String[] names = dir.list(); //获取文件名称
if(names == null)
return ;
for(String i:names){
System.out.println(i);
} ###
File dir = new File("e:");
File[] names = dir.listFiles(); //获取文件对象
if(names == null)
return ;
for(File i:names){
System.out.println(i); }

#####################文件过滤器
用于文件文件过滤,如果是学习这个,需要分析一下下面的代码,这样才能更好的使用
重点:新建自己的过滤器类,继承FileFilter,实现accept方法,方法放回的为真就是不过滤的。

public class MyFileFilter implements java.io.FileFilter          //以docx结尾
{
public boolean accept(File pathname)
{
return pathname.getName().endsWith("docx");
} }

MyFileFilter.java

public class FileFilterByEnding implements FileFilter        //在创建对象的时候确认以什么结尾。
{
private String suffix;
public FileFilterByEnding(String suffix) {
super();
this.suffix = suffix;
}
@Override
public boolean accept(File pathname)
{
return pathname.getName().endsWith(suffix);
}
}

FileFilterByEnding.java

public class FilterByContains implements FilenameFilter         //在创建对象的时候确认包含什么字符
{
private String content; public FilterByContains(String content) {
super();
this.content = content;
} @Override
public boolean accept(File dir, String name)
{
return name.contains(content);
}
}

FilterByContains.java

public class FilterBySuffix implements FilenameFilter         //还是在创建对象的时候,确定以什么结尾
{
private String ending; public FilterBySuffix(String ending) {
super();
this.ending = ending;
} @Override
public boolean accept(File dir, String name)
{
//dir 代表被过滤的目录,遍历过程中文件或者文件夹的名字
return name.endsWith(ending);
}
}

FilterBySuffix.java

File dir = new File("e:");  //获取文件夹里面的文件,返回文件数组形式
FilenameFilter filter = new FilterBySuffix("副");
filter = new FilterByContains("a");
String[] names = dir.list(filter); //这里有个调用
for(String i:names){
System.out.println(i); }

主函数调用

####################获取全部文件内容

public class GetAllFile
{
public static void main(String[] args)
{
File f = new File("F:"+File.separator+"E-drive-78234"+File.separator+"study");
getAllFile(f);
}
public static void getAllFile(File file){
File[] files = file.listFiles(); //获取文件数组
for(File f:files){
if(f.isDirectory()){ //如果是文件夹,则继续获取文件夹里面的数组
getAllFile(f);
}
else{
System.out.println(f);
}
}
}
}

##########删除目录

public class ShanWenJianJia
{
public static void main(String[] args)
{
File file = new File("f:"+File.separator+"eclipse_javaCode"+File.separator+
"day21"+File.separator+"day19");
System.out.println(file);
ShanChu(file);
}
public static void ShanChu(File f){
File[] fs = f.listFiles();
if(fs==null){
return;
}
for(File file:fs){
if(file.isDirectory()){
ShanChu(file);
}
else{
System.out.println(file+":"+file.delete());
}
}
System.out.println(f+":"+f.delete());
}
}

021.1 IO流——File类的更多相关文章

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

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

  2. Java—IO流 File类的常用API

    File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOE ...

  3. IO流——File类(文件流类)

    java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...

  4. JAVA:IO流——File类

    1.掌握File 类的作用 2.可以使用File 类中的方法对文件进行操作 所有的 io 操作都保存在 java.io 包中. 构造方法:public File (String pathname) 直 ...

  5. Java IO流-File类

    2017-10-24 23:50:22 File类 File类:文件和目录路径名的抽象表示形式.该文件或者目录不一定真实存在. * 构造方法 File类有四种构造方法,主要采用的构造方法师第二种,也就 ...

  6. Java第三阶段学习(一、IO流------File类)

    一.IO概述: 把内存中的数据存入到硬盘(持久化设备)中叫做:输出(写)Output操作.JAVA软件往电脑硬盘上走叫输出. 把硬盘中的数据读取到到内存里叫做:输入(读)Input操作.电脑硬盘上往J ...

  7. Java IO流-File类的使用示例-创建文件夹和文件的正确方法

    当创建一个文件时,比如:E:\\test\\test.txt,此时若文件夹test不存在,那么直接创建文件会出错,故首先要判断文件夹是否存在,不存在的话要首先创建文件夹. public class F ...

  8. Java学习笔记33(IO:打印流,IO流工具类)

    打印流: 有两个类:PrintStream     PrintWriter类,两个类的方法一样,构造方法不一样 PrintStream构造方法:接收File类型,接收字符串文件名,接收字节输出流(Ou ...

  9. Java常用工具类之IO流工具类

    package com.wazn.learn.util; import java.io.Closeable; import java.io.IOException; /** * IO流工具类 * * ...

随机推荐

  1. Java测试各种数据库连接(用Connection类)

    源代码: package cn.finedo.fdcollect_service.util; import java.sql.Connection; import org.apache.logging ...

  2. cursor : 普通,带参,可更新的游标。使用游标遍历时,强烈建议用for循环!!!

    cursor: 源数据表account中仅有两条记录: 如果输出在判断前,则出错,将最后一条记录输出两次,如下: 所以,一定要先判断notfound再输出结果: exit when (c%notfou ...

  3. Devexpress GridView增加CheckBox列

    参考DEV官网代码做了一个增加checkbox列效果: #region 方法:设置GridView数据绑定        public void GridDataBind()        {     ...

  4. jQuery的三种$()方式

    http://www.jb51.net/article/21660.htm   $号是jQuery“类”的一个别称,$()构造了一个jQuery对象.所以,“$()”可以叫做jQuery的构造函数(个 ...

  5. Druid SqlParser理解及使用入门

    以前的项目中很少去思考SQL解析这个事情,即使在saas系统或者分库分表的时候有涉及到也会有专门的处理方案,这些方案也对使用者隐藏了实现细节. 而最近的这个数据项目里面却频繁涉及到了对SQL的处理,原 ...

  6. HotSpot 虚拟机中对象的创建过程

  7. Redis-跳跃表

    相当于Redis 中的 sorted set 跳跃表节点结构: typedef struct zskiplistNode { struct zskiplistNode *backward;  //后退 ...

  8. Java注解拾遗

    注解简介: 注解Annotation是jdk1.5的新增功能,在现在的日常开发中,几乎离不开注解,写篇短文,来做个拾遗. 注解作用: Annotation(注解)的作用是修饰包.类.构造方法.方法.成 ...

  9. sdoi 2017 r1游记

    第一次参加省选... 不过幸亏我参加过WC和THUWC,还是有些经验的. 经验就是:多拿部分分(不过话说我的部分分大部分都丢了). D1: 第一题没有预处理斐波那契数列的幂,算复杂度算错了...丢了4 ...

  10. Python Basics

    廖雪峰老师博客 1. 可变参数(例如 *nums),允许传入一个list 或 tuple,但是 关键字参数(例如 **kv),允许传入一个dict,具体可参考此页: 2. set与dict类似,但只是 ...