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. };

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

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

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

  2. Java IO流-File类

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

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

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

  4. java io包File类

    1.java io包File类, Java.io.File(File用于管理文件或目录: 所属套件:java.io)1)File对象,你只需在代码层次创建File对象,而不必关心计算机上真正是否存在对 ...

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

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

  6. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类

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

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

  8. 021.1 IO流——File类

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

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

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

随机推荐

  1. JRebel_修改class后无法正确调试问题解决【2014-03-12】

    原文地址:http://www.cnblogs.com/hbbbs/p/3596179.html 现象 修改了class,编译后,JRebel自动装载到Web容器中.但此时调试这个类会发现无法正常调试 ...

  2. sqlserver 行转列 语文,数学,物理,化学

    数据库查询行转列 1.原数据库值 stdname stdsubject result 张三 语文 张三 数学 张三 物理 李四 语文 李四 数学 李四 物理 李四 化学 李四 化学 2.要得到如下表 ...

  3. linux文件操作命令--转

    引用地址:http://bbsunchen.iteye.com/blog/1010993 想自己一开始处理文件的时候,看文件有多少行,都要写个perl脚本,好不麻烦啊...以此文纪念自己傻逼的科研生活 ...

  4. 解析 iOS 动画原理与实现

    这篇文章不会教大家如何实现一个具体的动画效果,我会从动画的本质出发,来说说 iOS 动画的原理与实现方式. 什么是动画 动画,顾名思义,就是能“动”的画.人的眼睛对图像有短暂的记忆效应,所以当眼睛看到 ...

  5. WEB免费打印控件推荐

    在WEB系统中,打印的确是个烦人的问题. 要么自己开发打印控件,如果项目时间紧,肯定来不及. 要么购买成熟的打印控件,如果是大项目可以考虑,但如果项目只有几K到1.2W之间,这就麻烦了. 前段时间有机 ...

  6. VSS 之 未知的用户名或密码错误

    原因:导致这种现象的原因并不是真的用户名和密码错误,而是验证失败.验证失败也自然就会提示成用户名或密码错误了,只需要做以下更改就能正常验证用户名和密码了.解决方案:运行 组策略编辑器 gpedit.m ...

  7. cigarettes

    描述 Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them one by one keep ...

  8. 重构23-Introduce Parameter Object(参数对象)

    有 时当 使用 一个 包含 多 个 参 数 的 方 法 时 , 由 于参 数 过 多 会 导 致 可 读 性 严 重 下 降 , 如 : 有 时当 使用 一个 包含 多 个 参 数 的 方 法 时 , ...

  9. 转载:Character data is represented incorrectly when the code page of the client computer differs from the code page of the database in SQL Server 2005

    https://support.microsoft.com/en-us/kb/904803 Character data is represented incorrectly when the cod ...

  10. DWZ按钮居中显示