IO学习笔记(一)

来源:互联网 发布:精通matlab最优化.pdf 编辑:程序博客网 时间:2024/05/20 23:59

File类

File类既能处理文件,也能够处理目录

File file=new File("dir")

列出目录底下所有文件

String[] fileNames=file.list();


如果只需要列出.java类型的文件 则可以建立一个类实现FilenameFilter。

class JavaFilter implements FilenameFilter{public boolean accept(File file){if (file.getName().toLowerCase().endWith(".java")) {return true;}return false;}}然后调用file类带参数的list方法FileTypeFilter filter=new FileTypeFilter();File[] JavaFiles=file.listFiles(filter);

package com.lqf.IO;import java.io.File;import java.io.IOException;import java.util.Arrays;public class DirListTest {public static void main(String[] args){File file=new File("resource");String[] fileNames=file.list();System.out.println(Arrays.toString(fileNames));//新建一个文件类型过滤器的实例,只接受.java文件FileTypeFilter filter=new FileTypeFilter(new String[]{".java"});File[] javaFiles=file.listFiles(filter);for(int i=0;i<javaFiles.length;i++){System.out.println(javaFiles[i].getName());//打印所有文件的文件名}String firstFileName=javaFiles[0].getName();//判断文件是否可读System.out.println(javaFiles[0].canRead()?firstFileName+"可读":firstFileName+"不可读");//判断文件是否可写System.out.println(javaFiles[0].canWrite()?firstFileName+"可写":firstFileName+"不可写");//完整路径System.out.println(firstFileName+"完整路径是"+javaFiles[0].getAbsolutePath());File newDir=new File("newDir");System.out.println(newDir.mkdir()?"创建文件夹newDir成功":"创建文件夹失败");File newFile=new File("newFile.txt");try {System.out.println(newFile.createNewFile()?"创建文件newFile成功":"创建文件newFile失败");} catch (IOException e) {e.printStackTrace();}}}
package com.lqf.IO;import java.io.File;import java.io.FileFilter;<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;"></span></span>public class FileTypeFilter implements FileFilter {<span style="white-space:pre"></span><span style="white-space:pre"></span>private String[] fileTypes;//指定的文件类型<span style="white-space:pre"></span>public FileTypeFilter(String[] fileTypes) {<span style="white-space:pre"></span>this.fileTypes=fileTypes;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>//如果file的文件扩展名是fileType或者是个文件返回true,否则返回false<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public boolean accept(File file) {<span style="white-space:pre"></span><span style="white-space:pre"></span>if (file.isDirectory()) {<span style="white-space:pre"></span>return true;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>for(int i=0;i<fileTypes.length;i++){<span style="white-space:pre"></span>if (file.getName().toLowerCase().endsWith(fileTypes[i])) {<span style="white-space:pre"></span>return true;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span>return false;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>//<span style="white-space:pre"></span>public File[] listFiles(FileFilter fileFilter){<span style="white-space:pre"></span>String as[]=list();<span style="white-space:pre"></span>if (as==null) {<span style="white-space:pre"></span>return null;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>ArrayList arrayList=new ArrayList();<span style="white-space:pre"></span>for(int i=0;i<as.length;i++){<span style="white-space:pre"></span>File file=new File(as[i],this);<span style="white-space:pre"></span>if (fileFilter==null||fileFilter.accept(file)) {<span style="white-space:pre"></span>arrayList.add(file);<span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span>return (File[])(File[])arrayList.toArray(new File[arrayList.size()]);<span style="white-space:pre"></span><span style="white-space:pre"></span>}}

0 0