########################################
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. C语言20150620

    1-->printf()输出的时候前面没有0 是十进制,前面带0是八进制,前面有0x是十六进制 printf("%d",100):十进制解析 printf("%d& ...

  2. (三)JNI常用示例

    针对我之前文章的练习:JNI方法总结 1. 字符串 JAVA层: test.testString("HELLOWORLD"); JNI层: JNIEXPORT jstring JN ...

  3. 超赞的 Go 语言 INI 文件操作

    灵活的数据源 不光光可以从文件读取配置,还支持 []byte 类型的纯数据读取和基于 io.ReadCloser 的流式读取. 多种格式兼容 各种文件种类的广泛支持,包括但不限于 my.cnf..gi ...

  4. stringstream快速实现String和int之间的转换

    需要包含头文件”sstream” #include <iostream> #include <string> #include <sstream> using na ...

  5. [LeetCode]Find Pivot

    Find Pivot: Given an array of integers nums, write a method that returns the "pivot" index ...

  6. 理解js中bind方法的使用

    提到bind方法,估计大家还会想到call方法.apply方法:它们都是Function对象内建的方法,它们的第一个参数都是用来更改调用方法中this的指向.需要注意的是bind 是返回新的函数,以便 ...

  7. Android碎笔录1——基本布局

    刚开始学Android开发的时候,没有H5的基础总是分不清android布局文件的用法,真正要学会android布局还是得实战一次,下面不多说,直接上代码. 这是一个登陆界面,LinerLayout嵌 ...

  8. Android内存管理-OnTrimMemory

    Application中有两个与内存管理相关的方法:onLowMemory()和 onTrimMemory(int level),源码如下 @CallSuper public void onLowMe ...

  9. Android 退出app,后台推送的服务也停止了,怎么可以做到不停止后台服务呢?

    service粘性等的那4种方式试了,三星的可以,小米老款手机可以,新款不行,华为新款也不行,还有魅族什么的,都不行,新款的手机上都有一个安全中心,只有在安全中心里面添加上允许app自启动才可以 怎么 ...

  10. day04之VUE痛悟

    vue组件组件分为三部分