目标

  1)掌握File类作用

  2)可以使用file类中方法对文件进行读写操作。

File类

  唯一与文件有关的类。使用file类可进行创建或删除操作,要想使用File类,首先观察File类的构造方法。

  public File(String pathname);实例化File类的时候,必须设置好路径。

  常量::

public staitc final String pathSeparator;

  明明使用了static final定义的常量,这里为什么使用了小写方式。实际上这属于JAVA的历史遗留问题。

实例操作一:创建一个新文件。

  创建文件:

public boolean  creatNewFile() throws IOExcetion

  用以上方法就可以创建文件,但是注意要有异常处理

  在D盘创建一个文件:

import java.io.File ;
import java.io.IOException ;
public class FileDemo01{
public static void main(String args[]){
File f = new File("d:\\test.txt") ; // 实例化File类的对象,给出路径
try{
f.createNewFile() ; // 创建文件,根据给定的路径创建
}catch(IOException e){
e.printStackTrace() ; // 输出异常信息
}
}
};

  运行结果:

 

   步骤:首先创建File对象,创建对象的时候要给出文件路径,然后用这个对象调用creatNewFile()方法,注意调用方法时候要有异常处理

  以上完成了文件创建功能,但是开发中以上程序编写肯定会出现错误,在各个操作系统中,路径分隔符是不一样的。例如:

  windows使用反斜杠:"\"

  Linux中使用正斜杠:"/"

  要想让JAVA可移植增强,最好让操作系统自动使用分隔符

package Thread1;

import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
System.out.println("pathSeparator:" + File.pathSeparator) ; // 调用静态常量
System.out.println("separator:" + File.separator) ; // 调用静态常量
}
}

  运行结果:

pathSeparator:;
separator:\

  要想保持可移植性,在编写的时候应该使用File类中的常量。修改之前程序。

package Thread1;

import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
try{
f.createNewFile() ; // 创建文件,根据给定的路径创建
}catch(IOException e){
e.printStackTrace() ; // 输出异常信息
}
}
}

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

删除一个指定的文件

  删除文件方法:

public boolean delete();

  将之前建立好的文件删除掉。

package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
f.delete() ; // 删除文件

}
}

  运行结果:

  确实删除了文件。

  此时文件确实删除了,但是删除之前最好进行判断文件是不是存在

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

public boolean exists();

  使用以上代码增强之前程序。

package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
if(f.exists()){ // 如果文件存在则删除
f.delete() ; // 删除文件
}
else
System.out.println("文件不存在");
}
}

  运行结果:

文件不存在

  由于之前已经删除了,所以这里文件不存在。

综合创建,删除文件的操作

  要求:给定一个路径,如果文件存在删除,不存在,创建之。

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

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

创建文件夹

  使用mkdir()方法创建文件夹、

public boolean mkdir();

  实例;

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

  运行结果:创建成功一个名为mldn的文件夹。

列出指定目录的全部文件。

  如果给出一个目录,可以列出目录中全部内容,但是列出的方法存在两个:

  1,以字符串数组的形式返回。

public String [] list();

  2,以File数组形式返回:

pulbic File [] listFiles();

  操作一:list()方法:

package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator) ; // 实例化File类的对象
String str[] = f.list() ; // 列出给定目录中的内容
for(int i=0;i<str.length;i++){
System.out.println(str[i]) ;
}
}
}

  运行结果:

$RECYCLE.BIN
360SoftMove
BDSoftMgrData
Config.Msi
FDownload
MSOCache
Program Files
System Volume Information
TrainingPackage_dna
TrainingPackage_zcgl
办公软件
我的文档
搜狗高速下载
搞笑
文件清理.bat
编程软件

  以上只是列出全部文件名字

  操作2,使用listFiles()方法列出。

package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator) ; // 实例化File类的对象
File files[] = f.listFiles() ; // 列出全部内容,注意需要一个files对象数组接受这个返回数组。
for(int i=0;i<files.length;i++){
System.out.println(files[i]) ;
}
}
}

  运行结果:

d:\$RECYCLE.BIN
d:\360SoftMove
d:\BDSoftMgrData
d:\Config.Msi
d:\FDownload
d:\GSP平台
d:\GS管理套件
d:\MSOCache
d:\Program Files
d:\System Volume Information
d:\TrainingPackage_dna
d:\TrainingPackage_zcgl
d:\久其培训
d:\办公软件
d:\我的文档
d:\搜狗高速下载
d:\搞笑
d:\文件清理.bat
d:\编程软件
d:\蓝桥杯试题

  此时列出的是完整的路径。这样对于程序本身是很容易操作的。

判断一个给定的路径是否目录。

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

package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[])
{
File f = new File("d:"+File.separator) ; // 实例化File类的对象
if(f.isDirectory()){ // 判断是否是目录
System.out.println(f.getPath() + "路径是目录。") ;
}else{
System.out.println(f.getPath() + "路径不是目录。") ;
}
}
}

  运行结果:

d:\路径是目录。

列出指定目录的全部内容

  如果给定一个目录,则讲目录的全部文件列出来,但是列的时候可能存在子文件夹,子文件夹也有子文件夹。

  应该采用递归的形式。

package Thread1;
import java.io.File;
import java.io.IOException; public class demo1{
public static void main(String args[]){
File my = new File("d:" + File.separator+"FDownload") ; // 操作路径
print(my) ;
}
public static void print(File file){ // 递归调用
if(file!=null){ // 判断对象是否为空
if(file.isDirectory()){ // 如果是目录
File f[] = file.listFiles() ; // 列出全部的文件
if(f!=null){ // 判断此目录能否列出
for(int i=0;i<f.length;i++){
print(f[i]) ; // 因为给的路径有可能是目录,所以,继续判断,继续递归。
}
}
}else{
System.out.println(file) ; // 输出路径
}
}
}
};

  运行结果:

d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第一集 诗的起源[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第七集 亲情诗[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第三集 春江花月夜[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第二集 枫桥夜泊[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第五集 民歌[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第六集 怀乡诗[高清版].mp4
d:\FDownload\合并\0001.中国网络电视台-《诗词中国》 第四集 黄鹤楼与鹳雀楼[高清版].mp4

  这里用到了,判断路径是否为文件夹:isDirection()。列出文件夹下目录方法:listFiles()。还有递归。

Java的IO操作---File类的更多相关文章

  1. java之io之file类的常用操作

    java io 中,file类是必须掌握的.它的常用api用法见实例. package com.westward.io; import java.io.File; import java.io.IOE ...

  2. Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)

    第一讲     File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不 ...

  3. java之io之File类的list()方法过滤目录的使用

    java的io的知识中,File类必须掌握.File类是对文件或者文件夹的封装.它本身并不能对所封装的文件进行读写,它封装的只是文件或文件夹的周边知识,比如 大小啦,创建日期啦,路径啦等等. 如果Fi ...

  4. Java文件(io)编程——File类的基本用法

    1.首先了解文件流的相关概念: 2.文件File类的基本用法 public class Demo_1 { public static void main(String[] args) { //创建一个 ...

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

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

  6. java io包File类

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

  7. java的IO操作:字节流与字符流操作

    流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输 ...

  8. 1.5 JAVA的IO操作

    1.5 JAVA的IO操作 参考链接:https://www.runoob.com/java/java-files-io.html 一.JAVA的IO操作 由于JAVA引用外界的数据,或是将自身的数据 ...

  9. Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式

    解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和Out ...

随机推荐

  1. AutoCAD .NET二次开发(三)

    在ArcGIS中,锁是一个经常遇到的东西,在打开一个该当时要锁定,编辑一个文档是再次锁定.要深入理解这个,要学习一下进程与线程.在CAD.NET中,也有Lock与Unlock. 获取一个文档,在进行处 ...

  2. 聊聊GISer的职业发展

    一.前言 去年写了一篇名为<GISer们还有机会屌丝逆袭吗?>的博文,希望能和广大GISer一起探讨地理信息产业留给小团队和个人的机会.文章发布后,很多GISer通过网络和我进行了交流,其 ...

  3. Monyer's Game 0~5关过关方法

    自从Monyer编写了这个通关小游戏,可谓是好事坏事参半吧! 好事是Monyer认识了许多电脑高手,包括netpatch.luoluo等,连LCX这种骨灰级选手也过来了,可谓是收获不小(所以既然我已经 ...

  4. 大家一起和snailren学java-(五)访问控制权限

    “感觉中间断了一天,可是数数好像又没断……(-_^)” 这一天我们来再次细致讨论一下java的访控机制.java的访控机制其实在编程架构上非常实用的,也就是所谓的隐藏具体实现或者封装. 首先看看使用场 ...

  5. SQL之 CAST 和 CONVERT

    原文来自于: http://bbs.csdn.net/topics/330251394 CAST 和 CONVERT将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相 ...

  6. Effective Java 44 Write doc comments for all exposed API elements

    Principle You must precede every exported class, interface, constructor, method, and field declarati ...

  7. ISO9126软件质量模型

    ISO9126软件质量模型,是评价软件质量的国际标准.6个特性27个子特性组成. ISO/IEC9126软件质量模型是一种评价软件质量的通用模型,包括3个层次: 1.质量特性 2.质量子特性 3.度量 ...

  8. 设计模式C#实现(五)——抽象工厂模式

    抽象工厂模式 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类. UML类图: 场景:抽象村商店想销售Pizza和Hamburg等多种商品,而在美国店和中国店要出售本土化的口味 ...

  9. jacob 实现Office Word文件格式转换

    关于jacob用法,百度一下就会发现几乎都是复制2004年一个代码,那段代码实现的是从一个目录读取所有doc文件,然后把它转html格式. 为了便习学习和使用,我把代码看懂后精简了一下,得出不少新结论 ...

  10. 如何在WIN7下进行LINUX虚拟机搭建

    Linux是一套免费使用和自由传播的类Unix操作系统,非常适用于搭建网络服务器等,我本人日常工作时,是使用的LINUX和WIN7双操作系统,但每次更换系统总要关机重启很不方便,所以也在WIN7下搭建 ...