您的位置:首页 > 编程语言 > Java开发

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

2012-03-08 15:01 399 查看
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
[b]separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。[/b][b]("c:"+File.[b]
[b]separator
[/b]+"test"+File.[b]
[b]separator
[/b][/b]+"Hello.java"),可以程序的跨平台.[/b][/b](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();}作用:创建指定的文件。该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在。方法:
[b]createTempFile(String prefix,String suffix)
[/b]在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
static
[b]createTempFile(Stringprefix, String suffix,File directory)
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。[/b]示例: //临时文件对象的创建File tmpFile1 = File.createTempFile("####", "%%%%");[b]File tmpFile2 = File.createTempFile("ttttt", ".tmp", tempDir);File tmpFile3 = File.createTempFile("$$$", " ", null);[/b]方法:
void
deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
示例: //临时文件对象的删除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();}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: