Java文件操作的基本概念和简单操作

                                   Java文件的基本操作知识点


提纲:


一:基本概念汇总:

    1.学习文件操作的必要性:

   2.文件操作的概念:

   3.文件的概念:

    4.选择文件存储的条件:

    5.文件存储的特点:

    6.文件的表示和访问:


二:File类的具体文件操作

    1.File类的基本介绍:

    2.File类的方法使用示例;

          (1).File 对象代表文件路径:

                 (2).File类的常用方法:

          (3).较为完整的文件操作示例:

          (4).显示某个目录下的所有文件示例:

          (5)删除某个目录下的所有文件示例:  

正文:


一:基本概念汇总:


1.学习文件操作的必要性:

        在 IO 操作中,需要使用的数据源有很多,作为一个 IO 技术的初学者,从读写文件开始学习 IO 技术是一个比较好的选择。因为文件是一种常见的数据源,而且读写文件也是程序员进行 IO 编程的一个基本能力。


2.文件操作的概念:

    在程序中经常需要将数据存储到文件中,也需要按照正确的格式来读取各种数据。


3.文件的概念:

      文件 (File)是最常见的数据源之一,


4.选择文件存储的条件:

(1).对于数据的读写速度要求不高

(2).存储的数据量不是很大


5.文件存储的特点:

(1).存储在文件内部的数据是永久存储的,而内存中的数据在程序退出或计算机关机以后,数据就丢失了。

(2).在不同的存储介质中,文件中的数据都是以一定的顺序依次存储起来,在实际读取时由硬件以及操作系统完成对于数据的控制,保证程序读取到的数据和存储的顺序保持一致。

(3).文件的存储介质有很多,由于 IO 类设计时,从数据源转换为流对象的操作由 API 实现了,所以存储介质的不同对于程序员来说是透明的,和实际编写代码无关。


6.文件的表示和访问:      

       文件的路径+文件的全名.

(1) 绝对路径和相对路径

       绝对路径:指完整路径.

             好处:唯一指定文件.

              缺点:受到的限制很大,且不能在不同的操作系统下运行。

       相对路径:文件的部分路径.

              好处:更通用地代表位置,增加灵活性。


注意:

代码中文件路径的书写形式:

(c:\\test\\Hello.java)或(c:/test/Hello.java),因为 ’\’ 是 Java 语言中的特殊字符。

 static String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

("c:"+File.separator+"test"+File.separator+"Hello.java"),可以程序的跨平台.

(2) 文件名称

      文件名称一般形式:“文件名 . 后缀名”。文件名表明文件作用,后缀名表明类型。

         文件名称只是一个标示,方便使用,和实际存储的文件内容没有必然的联系。

         系统自动关联后缀名和对应的程序便于打开文件。

         编码时注意文件名的大小写和后缀名。

     

二:File类的具体文件操作


    1.File类的基本介绍:

    

     在java.io包中的File类,用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作。

     可以方便的代表文件的概念,以及存储一些对于文件的基本操作.

      File 类的对象代表具体的文件路径,绝对路径,相对路径和文件夹(特殊的路径)均可以 


    2.File类的方法使用示例;


 (1).File 对象代表文件路径

创建的文件对象示例:


方法:

 public File(String pathname)

示例:

File f1 = new File(“d:\\test\\1.txt”);

File f2 = new File(“1.txt”);

File f3 = new File(“e:\\abc”);


方法:

public File(String parent, String child)

使用父路径和子路径结合,实现代表文件路径。

示例:

 File f4 = new File(“d:\\test\\”,”1.txt”);


方法:

............

示例:


(2),File类的常用方法:


方法:

 boolean createNewFile()

创建文件,

当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

示例:

try {

boolean b = f3.createNewFile();

} catch (Exception e) {

e.printStackTrace();

}

作用:创建指定的文件。该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在。


方法:

  createTempFile(String prefix, String suffix) 

在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。static                   createTempFile(String prefix, String suffix, File directory)
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

示例:

        //临时文件对象的创建
File tmpFile1 = File.createTempFile("####", "%%%%");
File tmpFile2 = File.createTempFile("ttttt", ".tmp", tempDir);
File tmpFile3 = File.createTempFile("$$$", " ", null);

方法:

voiddeleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。


示例:

    //临时文件对象的删除
    tmpFile1.deleteOnExit();

    tmpFile2.deleteOnExit();
    tmpFile3.deleteOnExit();


(3).较为完整的文件操作示例:


import java.io.File;

/*

 * 日期:2012-03-07
 * 功能:演示File类的常用方法的使用
 * 
 */

public class FileDemo1 {

public static void main(String[] args) {

//

// File(String pathname)
// 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File f1 = new File("d:\\编程生成的文件1.txt");
//创建的文件的路径在哪儿呢?
//File f1 = new File("编程生成的文件1.txt");


File f2 = new File("d:\\编程创建的文件夹1");
File f3 = new File("d:\\编程创建的文件夹2\\创建父类不存在的文件夹1");

// File(File parent, String child)
// 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。


// File(URI uri)
// 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。


//


//创建文件: boolean createNewFile()
// 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
try {
System.out.println("创建文件f1是否成功?..."+f1.createNewFile());
} catch (Exception e) {
e.printStackTrace();
}

//


        //创建文件夹(父类存在):boolean mkdir()
        //创建此抽象路径名指定的目录。 
        System.out.println("\n创建文件夹f2是否成功?..."+f2.mkdir());


        //创建文件夹(父类不存在):boolean mkdirs() 
        //创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 
        System.out.println("创建父类不存在的文件夹f3是否成功?..."+f3.mkdirs()+"\n");

//

// File getAbsoluteFile()
// 返回此抽象路径名的绝对路径名形式。
System.out.println("文件f1的绝对路径名形式是:" + f1.getAbsolutePath());


// String getName()
// 返回由此抽象路径名表示的文件或目录的名称。
System.out.println("文件f3的文件名是:" + f1.getName());


// String getParent()
// 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
System.out.println("文件f1的父目录的路径名是:" + f1.getParent());


// boolean isDirectory()
// 测试此抽象路径名表示的文件是否是一个目录。
System.out.println("文件f1是否是目录?..." + f1.isDirectory());


// boolean isFile()
// 测试此抽象路径名表示的文件是否是一个标准文件。
System.out.println("文件f1是否是文件?..." + f1.isFile());


// long length()
// 返回由此抽象路径名表示的文件的长度。
System.out.println("文件f1的长度是:" + f1.length()+"\n");


//

        //File(String parent, String child)
      //根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
      File f4 = new File("d:\\", "编程生成的文件2.txt");
      
//boolean exists()
// 测试此抽象路径名表示的文件或目录是否存在。
System.out.println("文件f4是否存在?..." + f4.exists()+"\n");


//

File f5 = new File("d:\\编程软件和工具");

// String[] list()
// 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] str = f5.list();
for (int i = 0; i < str.length; i++) {
System.out.println("获得当前文件夹f5下所有文件和文件夹名称..." + str[i]);
}
System.out.println();

// File[] listFiles()
// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] f6 = f5.listFiles();
for (int i = 0; i < f6.length; i++) {
System.out.println("文件f5下的文件对象有..." + f6[i]);
}
System.out.println();
   
//        
       
        //boolean renameTo(File dest) 
        //重新命名此抽象路径名表示的文件。 
        File f7 = new File("d:\\编程生成的文件3.txt");
        System.out.println("修改文件f1的文件名是否成功?..."+f1.renameTo(f7));
        
        //boolean setReadable(boolean readable) 
        //设置此抽象路径名所有者读权限的一个便捷方法。 设置文件为只读
        System.out.println("设置文件f7的属性为只读是否成功?..."+f7.setReadOnly());             

}
}


(4)显示某个目录下的所有文件示例:


import java.io.*;

/*

 * 日期:2012-03-08
 * 功能:
 * 显示某个文件夹下的所有文件和文件夹,原理是输出当前名称,
 * 然后判断当前File对象是文件还是文件夹,如果则获得该文件夹下
 * 的所有子文件和子文件夹,并递归调用该方法实现。
 */

public class ShowAllFileDemo {
public static void main(String[] args) {
File f1 = new File("d:\\亿度空间下载");
ShowAllFile(f1);
}

// 递归函数的定义
public static void ShowAllFile(File f1) {

File[] f2 = f1.listFiles();
for (int i = 0; i < f2.length; i++) {
System.out.println("文件对象有:..." + f2[i]);

if (f2[i].isDirectory()) {
ShowAllFile(f2[i]);
}
}
System.out.println();
}
}

(5)删除某个目录下的所有文件示例:


import java.io.*;

/*
 * 日期:2012-03-08
 * 功能:
 * 删除某个文件夹下的所有文件和文件夹,原理是判断是否是文件,
 * 如果是文件则直接删除,如果是文件夹,则获得该文件夹下所有的子文件和子文件夹,
 * 然后递归调用该方法处理所有子文件和子文件夹,然后将空文件夹删除。
 * 
 */

public class DeleteAllFileDemo {
public static void main(String[] args) {

               File f1 = new File("d:\\常实验报告 - 副本");
DeleteAllFile(f1);

}

// 递归函数的定义
public static void DeleteAllFile(File f1) {

File[] f2 = f1.listFiles();

for (int i = 0; i < f2.length; i++) {
if (f2[i].isFile()) {
f2[i].delete();
}
if (f2[i].isDirectory()) {
DeleteAllFile(f2[i]);
}
f1.delete();
}
}
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值