1、掌握File 类的作用

2、可以使用File 类中的方法对文件进行操作

所有的 io 操作都保存在 java.io 包中。

构造方法:public File (String pathname) 

直接根据路径找到文件。

 

1. 创建一个新文件

创建文件: public boolean createNewFile() throws IOException

假设:现在要在d 盘上创建一个doc.txt 文件。

  1. import java.io.*;
  2. import java.io.IOException;
  3. public class FileDemo{
  4.   File file=new File("d:"+File.separator+"doc.txt");  //     ("d:\\doc.txt")分隔符的使用,两个反斜杠
  5. try{
  6.   file.createNewFile();
  7. }catch(IOException e){
  8.   e.printStackTrace();
  9. }
  10. }

在各个操作系统中,实际上路径的分隔符是不一样的,例如:

windows 中使用反斜杠:“\”

linux 中使用正斜杠:“/”

如果想让 JAVA 程序的可移植性继续保持,则最好根据所在的操作系统来自动使用分隔符File.separator。

File.pathSeparator与File.separator的区别?

前者为分号 ; 后者为冒号 :

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo02{
  4. public static void main(String args[]){
  5. System.out.println("pathSeparator:" + File.pathSeparator) ; // 调用静态常量
  6. System.out.println("separator:" + File.separator) ; // 调用静态常量
  7. }
  8. };

如果想让 JAVA 程序继续保持可移植性,那么在编写路径的时候就应该使用 File 类中的常量。

注意:在操作文件的时候一定要注意分隔符,使用 File.separator 表示。

2. 删除一个指定的文件

public boolean delete()    将之前建立的文件,删除掉。先判断文件是否存在

在File 类中可以使用 exists() 方法判断一个文件是否存在:public boolean exists() 

import java.io.File;

import java.io.IOException;

public calss FileDemo{

public static void main(String args[]){

File file=new File("d:"+File.separaor+"doc.txt");  //找到文件路径

if(file.exists()){  //如果文件存在

file.delete();

}

}

}

3.综合创建、删除文件的操作

现在以下一个要求:给定一个路径,如果此文件存在,则删除;如果文件不存在则创建一个新的文件。

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo06{
  4. public static void main(String args[]){
  5. File f = new File("d:"+File.separator+"test.txt") ;     // 实例化File类的对象
  6. if(f.exists()){ // 如果文件存在则删除
  7. f.delete() ;    // 删除文件
  8. }else{
  9. try{
  10. f.createNewFile() ;     // 创建文件,根据给定的路径创建
  11. }catch(IOException e){
  12. e.printStackTrace() ;   // 输出异常信息
  13. }
  14. }
  15. }
  16. };

从程序的运行结果中可以发现,所有的操作并不会立刻执行,因为JAVA 是通过JVM 与底层进行交互的,所以所有的操作需要经过JVM完成,那么就可能产生延迟。

提示:对于文件的后缀,是可有可无的。

4.创建一个文件夹

使用mkdir() 方法创建一个文件夹   public boolean mkdir()

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo07{
  4. public static void main(String args[]){
  5. File f = new File("d:"+File.separator+"mldn") ;     // 实例化File类的对象
  6. f.mkdir() ; // 创建文件夹
  7. }
  8. };

5.列出指定目录的全部文件

如果现在给出了一个目录,则可以直接列出目录中的内容,但是列出的方法在File 类中存在两个:

以字符串数组的形式返回:public String[] list()   返回路径下所有文件的名

以 File 数组的形式返回: public File[] listFiles() 返回所以文件的路径

操作一: 使用list() 列出全部内容

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo08{
  4. public static void main(String args[]){
  5. File f = new File("d:"+File.separator) ;        // 实例化File类的对象
  6. String str[] = f.list() ;   // 列出给定目录中的内容
  7. for(int i=0;i<str.length;i++){
  8. System.out.println(str[i]) ;
  9. }
  10. }
  11. };

操作二: 使用listFiles() 列出全部内容(带路径)

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo09{
  4. public static void main(String args[]){
  5. File f = new File("d:"+File.separator) ;        // 实例化File类的对象
  6. File files[] = f.listFiles() ;  // 列出全部内容
  7. for(int i=0;i<files.length;i++){
  8. System.out.println(files[i]) ;
  9. }
  10. }
  11. };

后者列出的是一个完整的路径,这样对于程序本身来说是很容易操作的。

6.判断一个给定的路径是否是目录(即,是否是文件夹)

在File 类中直接使用: public boolean isDirectory()

取得文件的路径:   public boolean getPath()

给定路径,判断是否是目录

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo10{
  4. public static void main(String args[]){
  5. File f = new File("d:"+File.separator) ;        // 实例化File类的对象
  6. if(f.isDirectory()){    // 判断是否是目录
  7. System.out.println(f.getPath() + "路径是目录。") ;
  8. }else{
  9. System.out.println(f.getPath() + "路径不是目录。") ;
  10. }
  11. }
  12. };

7、要求:列出指定目录的全部内容

如果给定了一个目录,则要求将此目录中的全部文件都列出来,但是列的时候还会存在子文件夹。

应该采用递归的调用形式。

  1. import java.io.File ;
  2. import java.io.IOException ;
  3. public class FileDemo11{
  4. public static void main(String args[]){
  5. File my = new File("d:" + File.separator) ; // 操作路径
  6. print(my) ;
  7. }
  8. public static void print(File file){    // 递归调用
  9. if(file!=null){ // 判断对象是否为空
  10. if(file.isDirectory()){ // 如果是目录
  11. File f[] = file.listFiles() ;   // 列出全部的文件
  12. if(f!=null){    // 判断此目录能否列出
  13. for(int i=0;i<f.length;i++){
  14. print(f[i]) ;   // 因为给的路径有可能是目录,所以,继续判断
  15. }
  16. }
  17. }else{
  18. System.out.println(file) ;  // 输出路径
  19. }
  20. }
  21. }
  22. };

JavaIO流——File类的更多相关文章

  1. Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte

    File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...

  2. java-IO流(File对象-深度遍历指定目录下的文件夹和文件)

    需求:遍历这个树状结构 File(String pathname) '\\'为了转义'\' // 通过抽象路径pathname 创建一个新的文件或者目录 File parent = new File( ...

  3. 021.1 IO流——File类

    ########################################IO流:    IO:用于处理设备上的数据的技术.设备:内存,硬盘,光盘    流:系统资源,Windows系统本身就可 ...

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

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

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

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

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

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

  7. JavaIO之File类

    Java-IO之File类 Java-IO之File类 1. File类 1.1. File类说明 1.2. 体验 File 类 1.3. 构造一个 File 类实例: 1.4. 路径: 1.4.1. ...

  8. I/O流——File类及使用

    I/O框架介绍 I/O是计算机输入/输出的接口.Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等. File类及使用 ①   一个File类的对 ...

  9. JAVA:IO流——File类

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

随机推荐

  1. Sicily1153-马的周游问题:启发式搜索

    代码地址: https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1153.c 题目如下: 1153. 马的周游问题 C ...

  2. ReactiveCocoa Tutorial

    ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2 ReactiveCocoa教程——明确的介绍:第一部分(共两部分) As ...

  3. JavaEE中遗漏的10个最重要的安全控制

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! JavaEE有一些超赞的内置安全机制,但它们远远不能覆盖应用程序要面临的所有威胁.很多常见攻击,例如跨站点脚本攻 ...

  4. hdoj 1061 Rightmost Digit【快速幂求模】

    Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  5. 网站优化与Cdn文件传输服务

    网站优化与Cdn文件传输服务 如今互联网无处不在,其方便快捷.性质和低成本的经济特点,已经逐渐成为商务贸易.信息分发和数据交付的一个重要渠道.要想让数据的分发带来巨大的效益,那么网民的满意是唯一的办法 ...

  6. 【异构计算】OpenCL中上下文

    引言 opencl中,上下文(context)是一个抽象容器并存在于主机端,它能协调主机与设备之间的交互机制,管理设备上可以的内存对象,跟踪针对每个设备新建kernel和程序. API函数clCrea ...

  7. UVaLive2572 poj1418 UVa1308 Viva Confetti

    一次放下n个圆 问最终可见的圆的数量 应该是比较经典的问题吧 考虑一个圆与其他每个圆的交点O(n)个 将其割成了O(n)条弧 那么看每条弧的中点 分别向内向外调动eps这个点 则最上面的覆盖这个点的圆 ...

  8. 屏幕录制:SCR Screen Recorder Pro v0.14.3汉化破解版

    应用概览 <ignore_js_op> 软件名称:屏幕录制:SCR Screen Recorder Pro 软件版本:v0.14.3汉化破解版软件语言:中文软件大小:3.5M软件包名:co ...

  9. HDU 4288 线段树+离散化

    题意: n个操作 在[1, 100000]  的区间上add 或del数( 必不会重复添加或删除不存在的数) sum 求出整个集合中 (下标%5 == 3 位置) 的数   的和 注意数据类型要64位 ...

  10. JSF学习五Ajax

    验证username(不能有下划线)和password(不能小于六位) 1.UserBean.java package ajax; import java.io.Serializable; impor ...