java.io.File的使用。

IO原理及流的分类。

文件流:FileInputStream、FileOutputStream、FileReader、FileWriter

缓存流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

转换流:InputStreamReader、OuputStreamReader

标准输入/输出流

打印流

数据流

对象流:涉及序列化和反序列化ObjectInputStream、ObjectOutputStream

随机存取文件流:RandomAcessFile

java.io.File类:文件和目录路径名的抽象表示形式,与平台无关。

File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

File对象可以作为参数传递给构造函数。

File类常用构造方法:

  • public File(String pathname)。以pathname为路径创建File对象,可以是绝对路径,也可以是相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
  • public File(String parent,String child);。以parent为父路径,child为子路径创建File对象。
  • File的静态属性String sperator存储了当前系统的路径分隔符,在Unix中,此字段为"/",在windows中为"\\"。

访问文件名:

  • getName()
  • getPath()
  • getAbsoluFile()
  • getAbosoluPath()
  • getParent()
  • renameTo(File newName)

文件检测:

  • exists()
  • canWrite()
  • canRead()
  • isFile()
  • isDirectory()

获取常规文件信息:

  • lastModify()
  • length()

文件操作相关:

  • createNewFile()
  • delete()

目录操作相关:

  • mkDir()
  • list()
  • listFiles()
package anno;

import java.io.File;

public class Test1 {
public static void main(String[] args) {
File f = new File("F:\\test.txt");
System.out.println(f.getName());
//获取new File时的路径
System.out.println(f.getPath());
//获取文件的绝对路径
System.out.println(f.getAbsolutePath());
//用绝对路径包起来的File对象
System.out.println(f.getAbsoluteFile());
//当前文件的父级目录
System.out.println(f.getParent());
f.renameTo(new File("F:\\test2.txt"));
File f2 = new File("F:\\test2.txt");
System.out.println(f2.exists());
System.out.println(f2.isFile());
System.out.println(f2.isDirectory());
//返回的是字节数
System.out.println(f2.length());
File f3 = new File("F:\\test3.txt");
if(!f3.exists()) {
try {
//创建文件
f3.createNewFile();
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println("创建完毕");
}
}
//删除文件
f3.delete();
File f4 = new File("F:\\test4\\name");
//f.mkDir();创建单层目录
//创建多层目录
if(!f4.exists()) {
f4.mkdirs();
}
File f5 = new File("F:\\test4");
//返回的是字符串集合,包括文件和目录
String[] l1 = f5.list();
for(String l:l1){
System.out.println(l);
}
//返回的是个File集合,包括目录和文件
File[] l2 = f5.listFiles();
for(File l:l2){
System.out.println(l);
} }
}

递归判断某个文件夹下的文件是文件夹还是文件。

package anno;

import java.io.File;

public class Test1 {
public static void main(String[] args) {
File f = new File("F:\\test\\");
obtainFiles(f);
}
public static void obtainFiles(File f) {
if(f.isFile()) {
System.out.println(f.getAbsolutePath()+"是文件");
}else {
System.out.println(f.getAbsolutePath()+"是文件夹");
File[] fs = f.listFiles();//获取当前目录下的文件夹或文件
if(fs!=null && fs.length>0) {
for(File ff:fs) {
obtainFiles(ff);
}
}
}
}
}

输出:

F:\test是文件夹
F:\test\file1是文件夹
F:\test\file2是文件夹
F:\test\file3是文件夹
F:\test\file4是文件夹
F:\test\test1.txt是文件
F:\test\test2.txt是文件
F:\test\test3.txt是文件
F:\test\test4.txt是文件

java之java.io.File的相关方法的更多相关文章

  1. Java文件与io——File类

    概念: File类:表示文件和目录路径名的抽象表示形式. File类可以实现文件的创建.删除.重命名.得到路径.创建时间等等,是唯一与文件本身有关的操作类. 例: public class FileD ...

  2. java.io.NotSerializableException: test.io.file.Student

    java.io.NotSerializableException: test.io.file.Student    at java.io.ObjectOutputStream.writeObject0 ...

  3. IO:File类(java.io.File)

    public class File extends Object implements Serializable, Comparable<File> 构造方法: public File(S ...

  4. java.io.file

    package cn.edu.tongji.cims.wade.system;     import java.io.*;     public class FileOperate {     pub ...

  5. java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)

    java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...

  6. 【java IO File】统计项目代码总共多少行

    统计项目代码总共有多少行 思想: 1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹 2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件 3.迭代方法 ...

  7. java.io.File类

    java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...

  8. Java学习之IO之File类二

    之前学了File便想把我学习视频的名字改了,因为文件名太长不好看,便试着写了个功能实现 package com.gh.file; import java.io.File; /** * 批量文件命名 * ...

  9. Java学习之IO之File类一

    File的操作 package com.gh.file; import java.io.File; import java.io.IOException; /** * File操作 * @author ...

随机推荐

  1. day20191010ClassNotes

    笔记: 1.DAO模式组成部分: 程序 ----> 数据库 实体类 数据库中的表 工具类:公共的数据库连接.关闭.公共的增删改.查询 接口 : 程序提倡的是面向接口编程,从而降低程序的耦合性 实 ...

  2. 深入浅出Spring(三)

    我为大家简单介绍了一下Spring框架核心内容中的IoC,接下来我们继续讲解另一个核心AOP(Aspect Oriented Programming),即面向切面编程. 1.OOP回顾 在介绍AOP之 ...

  3. CCNA 之 四 管理和配置CISCO设备

    管理和配置CISCO设备 路由器组件 cpu 执行操作系统的指令 随机访问存储器RAM - RAM中内容断电丢失 - 运行操作系统: - 运行配置文件: - IP 路由表: - ARP 缓存; - 数 ...

  4. 你真的了解foreach吗?

    引言 有C#基础的,当问到循环有哪些,会毫不犹豫的说出的for.do while.foreach及while这几种,但是到具体实际开发中,我们遇到一些问题,比如:到底选择哪种?为什么选择这种?哪种好像 ...

  5. 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  6. MySQL必知必会(创建计算字段(field))

    #字段(field)基本上和列(column)的意思相同 SELECT Concat(vend_name, ' (', vend_country, ')') FROM vendors ORDER BY ...

  7. 17.JAVA-Dom、Sax解析XML详解

    在JAVA中,解析有三种方式: Dom解析(支持改删,耗内存). Sax解析(不支持改删,不耗内存). Pull解析(在Android中推荐使用的一种解析XML的方式,在下章学习). 1.支持Dom与 ...

  8. CocoaPods 详解之----更新篇

    CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...

  9. React 事件总结

    目录 一 绑定事件处理函数 1.1 鼠标类 1.2 拖拽事件: 1.3 触摸 1.4 键盘 1.5 剪切类 1.6 表单类 1.7 焦点事件 1.8 UI元素类 1.9 滚动 1.10 组成事件 1. ...

  10. [TimLinux] JavaScript 阻止父节点接收子节点事件的方法

    1. 事件 两种类型的事件:触发式.冒泡式 2. 冒泡式 触发式:事件从DOM结构的顶层往下走的事件触发过程: 冒泡式:事件从DOM结构的底层往上走的事件触发过程. 3. 父子节点 当父.子节点同时对 ...