前言:
如今小伙伴们对“java二级教程”大概比较关切,大家都需要分析一些“java二级教程”的相关文章。那么小编同时在网络上搜集了一些对于“java二级教程””的相关知识,希望同学们能喜欢,你们一起来了解一下吧!1、应用 File类实现对磁盘文件属性操作的应用示例
(1)问题分析和解题思路
所谓的IO流,它是通过缓冲机制将数据从生产者(如键盘、磁盘文件、内存或其他设备)传送到接受该数据的消费者(如屏幕、文件或者内存等)的这一过程的抽象。
在java.io程序包中提供有包装文件名及目录名的File类,File 类独立于操作系统平台。利用File 类的构造方法创建出File类的对象实例,该对象实例将包装某个文件名称或者目录路径名称。File类的构造方法主要有如下的三种形式:
1) File( String path)
2) File(String path, String FileName)
3) File(File dir, String name)
因此,只要创建出File 类的对象实例;再调用File 类中的canRead() 、canWrite()、getParent()、getPath()等成员方法,可以实现对文件的各个属性项的操作,以实现文件与目录的统一管理的功能。
java.io程序包中的File 类提供了一种与机器无关的方式来描述一个文件对象的属性,通过类File所提供的方法,可以得到文件或目录的描述信息,这主要包括名称、所在路径、可读性、可写性、文件的长度等,还可以生成新的目录、改变文件名、删除文件、列出一个目录中所有的文件等文件与目录的管理功能。
(2)在MyEclipse开发工具中创建出一个类名称为FileAttributeDemo,程序包名称为com.bluedream.javaio,并且包含有main()方法的Java程序类,FileAttributeDemo程序类的创建过程参看如下示例图所示。
(3)在FileAttributeDemo程序类中新增一个名称为displayFileAttribute方法
在该displayFileAttribute方法中根据所获得的文件名称信息创建出对应的File类的对象实例,然后根据该对象实例识别此文件名称所代表的是文件还是目录,如果代表某个文件,则获得此文件的相关属性,并显示这些属性。displayFileAttribute方法的相关程序代码请参看如下示例图所示的程序代码。
(4)读者需要注意在Java 程序中如何正确地实现跨平台方式标识文件
因为文件路径的分隔符在不同的操作系统中是不同的。比如,“/”是Unix或者Linux系统下的文件路径表示(而且只能使用“/”),而“ \”是Windows系统下的文件路径表示形式(文件路径使用“\\”和“\”都是可以的)。 因此在Java 程序中如果要标识“C:\WINDOWS\winhlp32.exe”文件,可以采用如下的程序代码实现跨平台:String FileName="C: " +File.separator+"WINDOWS"+File.separator+"winhlp32.exe";
当然,也可以通过如下的代码获得当前程序在执行时的操作系统名称,从而针对不同的操作系统应用对应的文件目录表示格式。
Properties props=System.getProperties(); //获得系统属性集String osName = props.getProperty("os.name"); //操作系统名称
然后再根据操作系统的名称识别所在的操作系统,分别进行不同形式的路径表示。但这样有点太麻烦!
另外,读者还要注意文件写权限的不同。由于Linux操作系统有严格的文件操作权限,默认是不给予写权限的。所以需要对相关的文件和文件夹授予写权限;其次是文件名大小写敏感问题,由于Windows操作系统对文件后缀名的大小写是不敏感的,而Linux操作系统是敏感的。所以在程序中引用的文件名的后缀一定要与实际的文件名称的大小写保持一致性。
(5)执行本程序示例FileAttributeDemo类的程序代码
在MyEclipse开发工具中右击源程序,在弹出的快捷菜单中选择“Run as”下拉菜单中的“Java Application”子菜单项目,将执行本示例FileAttributeDemo类程序。
(6)FileAttributeDemo类程序的执行结果将在MyEclipse开发工具的控制台窗口中显示,参看如下示例图所示。
2、应用 File类实现列出某个目录下所有的文件名
(1)问题分析及解题思路
在File类中提供有list()方法和listFiles()方法,其中的list()方法可以返回某个目录下的所有文件和目录的文件名的String类型的数组,而listFiles()方法则是返回某个目录下所有文件和目录的绝对路径,并且返回的是File类型的数组。
因此,在本示例中只需要应用list()方法获得某个目录下的所有文件名列表,然后再分别显示这些文件名。
(2)在MyEclipse开发工具中创建出一个类名称为ListAllFilesDemo,程序包名称为com.bluedream.javaio,并且包含有main()方法的Java程序类,ListAllFilesDemo程序类的创建过程参看如下示例图所示。
(3)在ListAllFilesDemo程序类中新增一个名称为listAllFilesInOneDir方法
在listAllFilesInOneDir方法中获得需要查询的文件扩展名字符串,并构建出过滤类FileFilter的对象实例,依据该文件扩展名的过滤规则对指定目录中的文件进行过滤匹配,获得所有匹配的文件名称信息并缓存在File类型的对象数组中,最后遍历该对象数组以显示出各个匹配的文件名称信息列表。listAllFilesInOneDir方法的最终程序代码请参看如下示例图所示的程序代码。
(4)java.io.FilenameFilter接口的主要功能说明
实现java.io.FilenameFilter接口的类对象实例可用于过滤文件名,要实现此接口需要实现该接口中的boolean accept(File dir, String name)方法以测试指定文件是否应该包含在某一文件列表中——accept()方法返回true代表某文件包含在某个文件列表中。在本示例程序中实现FilenameFilter接口的程序类FileFilter的代码示例如下示例图所示的程序代码。
在accept()方法中实现识别待识别的文件扩展名称字符串是否为空,如果为空则意味着需要查询某个目录中的所有文件和子目录信息,直接返回true以匹配所有的文件和子目录;而如果待识别的文件扩展名称字符串不为空,则识别某个文件的扩展名称中是否含有待匹配的扩展名称字符串,如果匹配成功,则返回true以表明该文件为匹配的文件名称。
(5)ListAllFilesDemo程序类中的main()方法的程序代码
在main()方法中首先构建出ListAllFilesDemo类的对象实例,然后再通过该对象实例调用listAllFilesInOneDir方法,并传入待查询的目录名称字符串和待匹配的文件扩展名称字符串,在listAllFilesInOneDir方法中进行文件匹配处理操作。main()方法的程序代码实例请参看如下示例图中的程序代码。
(6)执行ListAllFilesDemo类的程序代码
根据应用的需要,作者可以改变待查询匹配的目录路径、待匹配的文件扩展名称字符串。也就是设置main()中的如下的两个变量:
String someOneFileNameAndPath="D:" +File.separator+"qycache";String extentNameString="";
上面的变量定义的主要含义是查询显示D:\ qycache目录中的所有文件名称信息和子目录名称信息。在MyEclipse开发工具中右击源程序,在弹出的快捷菜单中选择“Run as”下拉菜单中的“Java Application”子菜单项目,将执行本示例ListAllFilesDemo类程序。
ListAllFilesDemo类的示例程序执行结果参看如下示例图所示,将某个目录下的文件名称信息和目录名称信息分别获得。然后再分门别类地显示。
而作者的计算机磁盘中的D:\ qycache目录中的文件名称和下一级的子目录信息参看如下示例图所示。本示例程序的执行结果完全与作者计算机的磁盘目录中的文件信息匹配,程序的功能实现是正确的。
将String extentNameString=""; 改变为String extentNameString="ini2"; 也就是需要查询匹配出*. ini2的所有文件信息。从作者的磁盘目录中的实际情况来看,只有一个文件livenet_cloudcfg.ini2匹配文件扩展名称ini2。本示例程序的执行结果如下示例图所示,与实际磁盘目录中的文件状况完全一致。
计算机等级二级考试辅导:综合应用上机模拟题及解答(第7部分)
计算机等级二级考试辅导:综合应用上机模拟题及解答(第5部分)
计算机等级二级考试辅导:综合应用上机模拟题及解答(第6部分)
计算机等级二级考试辅导:综合应用上机模拟题及解答(第4部分)
计算机等级二级考试辅导:综合应用上机模拟题及解答(第3部分)
标签: #java二级教程